PRT On-Time Performance Analysis

35 analyses · 98 routes · 62 charts · January 2019 – November 2025 · 7,651 monthly observations

1. System-Wide Trend

PRT on-time performance has declined over the seven-year window. Trip-weighted system OTP started around 69% in early 2019, spiked briefly to 77% in March 2020 (COVID-era low ridership), then fell steadily to a trough of 60% in September 2022. It has since stabilized in the 63–65% range through late 2025, but has not recovered to pre-COVID levels. A bus-only stratification confirms the decline is not an artifact of mixing modes – the bus-only trend closely tracks the all-mode average (gap averages ~0.5 pp) because bus routes dominate the system (90+ of ~93 reporting).

Weights now use time-varying scheduled trip counts from WPRDC for Jan 2019 – Mar 2021 (27 months), falling back to static MAX(trips_7d)/7 from route_stops for later months. This fixes the previous SUM-across-stops conflation with route length and the static-weights-across-7-years problem. The weighted and unweighted averages now track very closely (~0.1 pp gap), confirming the previous ~2-3 pp gap was an artifact of the SUM-based weight inflation, not a genuine high-frequency penalty. Route count ranges from 68 to 96 across months; five routes (37, 42, P2, RLSH, SWL) are excluded from the weighted average due to missing weight data.

system_trend
System Trend
Detailed findings

Summary

PRT on-time performance has declined over the 2019–2025 window and has not recovered to pre-COVID levels. A bus-only stratification confirms the decline is not an artifact of mixing modes – bus trends closely track the all-mode average.

Key Numbers

Observations

Caveats

Discussion

The central finding – that PRT OTP declined from ~69% to ~60% and has stabilized around 63–65% without recovering – is robust to the weighting methodology change. The overall trend shape (pre-COVID baseline, COVID spike, sustained decline, plateau) is visible in both weighted and unweighted series.

The collapse of the weighted-unweighted gap from ~2-3 pp to ~0.1 pp is itself a notable finding. The previous gap was interpreted as evidence that "high-frequency routes perform worse than low-frequency ones." This was wrong: it was an artifact of the SUM-across-stops weight, which inflated the weights of routes with many stops (i.e., long routes), not high-frequency routes. Once weights correctly reflect trip frequency (via WPRDC scheduled counts or MAX-based proxy), the weighted and unweighted averages converge, meaning route frequency does not systematically predict OTP at the system level. This is consistent with the null result from Analysis 10 (cross-sectional) and Analysis 30 (longitudinal panel).

The time-varying weights for the first 27 months (Jan 2019 – Mar 2021) capture real service changes, including the COVID-era cuts that reduced weekday trips by 31% between March and April 2020. This means the weighted OTP for 2020–2021 reflects actual service levels rather than retroactively applying today's schedule. The static fallback for later months remains a limitation – if PRT restructured service significantly after March 2021, those changes are not captured. Extending the WPRDC data or obtaining historical GTFS archives would close this gap.

The bus-only stratification confirms that system trends are driven by bus performance. Rail's higher OTP (~84%) lifts the all-mode average by only ~0.5 pp because bus routes represent >96% of the reporting routes. Any policy intervention to improve system OTP must focus on bus operations.

Methodology Change (2026-02-15)

Replaced static SUM(trips_7d) weighting with time-varying daily_trips from WPRDC scheduled trip counts (Jan 2019 – Mar 2021) and MAX(trips_7d)/7 static fallback for later months. This fixes Methodology Issues #1 (SUM conflation with route length) and #2 (static weights across 7 years). The weighted-unweighted gap collapsed from ~2-3 pp to ~0.1 pp, confirming the old gap was an artifact of the SUM-based weight inflation, not a genuine high-frequency penalty.

Review History

2. Mode Comparison

Light rail (RAIL) consistently outperforms bus, averaging 84% OTP vs 69% for BUS system-wide (Mann-Whitney U = 6,563, p < 0.001, n = 83 months). Trip-weighted bus OTP (66.8%) is ~2 pp below the unweighted average (68.9%), confirming that higher-frequency bus routes tend to perform worse. The Incline has no OTP data (see Analysis 09). Five UNKNOWN-mode routes are excluded. Among bus subtypes:

Bus TypeAvg OTPNotes
Busway (P1, P3, G2)71–76%Dedicated right-of-way helps
Flyer (P/G/O prefix)~70%Park-and-ride express services
Limited (L suffix)~72%Fewer stops than local counterparts
Express (X suffix)~70%Highway-dependent, variable
Local63–69%Largest category, lowest performance

Two paired-route comparisons were found (51/51L, 53/53L). On average, the limited variant outperforms its local counterpart by +3.5 percentage points (paired t-test: t = 7.37, p < 0.001, 95% CI: [+2.5, +4.4 pp], n = 85 paired monthly observations). The sample of only 2 route pairs limits generalizability.

The RAIL–BUS gap has been roughly stable over time, suggesting that the system-wide OTP decline affects both modes proportionally.

mode_comparison
Mode Comparison
Detailed findings

Summary

Light rail consistently outperforms bus by a wide margin, and the difference is statistically significant (Mann-Whitney U = 6,563, p < 0.001). Among bus routes, dedicated right-of-way (busway) routes perform nearly as well as rail, and limited-stop variants beat their local counterparts.

Key Numbers

Mode / TypeAvg OTP (unweighted)Avg OTP (trip-weighted)Route Count
RAIL84%84%3
Busway (P1, P3, G2)71–76%3
Flyer (P/G/O prefix)~70%~16
Limited (L suffix)~72%varies
Express (X suffix)~70%varies
Local bus63–69%~60

Statistical Tests

Observations

Caveats

Review History

3. Route Ranking

94 routes had enough data (12+ months) to rank. Rankings use trailing 12-month average OTP to reflect current performance, and post-2022 slope (with 95% CIs via scipy.stats.linregress) to capture recent trajectory without COVID distortion. 51 of 94 slopes are statistically significant. 4 routes were excluded for insufficient data. Routes are ranked both overall and within their mode (BUS, RAIL, UNKNOWN).

Caution – Regression to the Mean: Extreme-ranked routes (top/bottom performers, most-improving/declining) are expected to regress toward the mean in subsequent periods. These lists identify current outliers, not necessarily future ones.

Best performers (by trailing 12-month OTP):

RouteModeMode RankRecent OTPAll-Time OTP
G2 - West BuswayBUS1/8988.4%81.7%
18 - ManchesterBUS2/8987.5%88.4%
P1 - East Busway-All StopsBUS3/8983.9%84.5%
39 - BrooklineBUS4/8982.6%78.9%

Worst performers:

RouteModeMode RankRecent OTPAll-Time OTP
71B - Highland ParkBUS89/8941.9%58.8%
61C - McKeesport-HomesteadBUS88/8944.8%56.8%
65 - Squirrel HillBUS87/8946.5%61.5%
58 - GreenfieldBUS86/8949.8%60.8%

Most improving (post-2022, statistically significant): P78 - Oakmont Flyer (+6.6 pp/yr, CI [+5.0, +8.2]), 71D - Hamilton (+4.1 pp/yr, CI [+2.5, +5.7]). Most declining (post-2022, statistically significant): 65 - Squirrel Hill (-8.3 pp/yr, CI [-11.7, -4.9]), 71B - Highland Park (-7.2 pp/yr, CI [-8.8, -5.5]). Note: SWL (Outbound to SHJ) has a point estimate of -10.4 pp/yr but its CI includes zero due to only 13 observations over 21 months.

3 routes were flagged as high-volatility (standard deviation more than 2x the median), indicating wild month-to-month swings rather than stable performance. 5 routes lack stop count data due to missing route_stops entries.

top_bottom_routes
Top Bottom Routes
Detailed findings

Summary

94 routes had sufficient data (12+ months) to rank. Rankings use trailing 12-month average OTP to reflect current performance, and post-2022 slope to capture recent trajectory without COVID distortion. Slopes now include 95% confidence intervals via scipy.stats.linregress; 51 of 94 slopes are statistically significant (CI excludes zero). 3 routes were flagged as high-volatility. Routes are ranked both overall and within their mode (BUS, RAIL, UNKNOWN).

Regression to the Mean

Caution: Extreme-ranked routes – both top/bottom performers and most-improving/declining – are expected to regress toward the mean in subsequent periods. This is a statistical phenomenon, not an operational one: routes that happen to have unusually good or bad stretches will tend to look less extreme next time, even without any intervention. Rankings should be interpreted as snapshots, not predictions. A route appearing at the top or bottom of a list does not necessarily mean it will stay there. Formal empirical Bayes shrinkage could partially correct for this, but is beyond the scope of this analysis. Readers should weight these rankings accordingly, especially for routes with fewer observations or higher volatility.

Top 5 Routes (by trailing 12-month OTP)

RouteModeMode RankRecent OTPAll-Time OTPStops
G2 - West BuswayBUS1/8988.4%81.7%24
18 - ManchesterBUS2/8987.5%88.4%43
P1 - East Busway-All StopsBUS3/8983.9%84.5%24
39 - BrooklineBUS4/8982.6%78.9%69
43 - BaileyBUS5/8981.8%79.5%65

All top 5 are BUS routes. The 3 RAIL routes rank 9th (SLVR, 78.8%), 12th (BLUE, 77.4%), and 30th (RED, 72.8%) overall.

Bottom 5 Routes (by trailing 12-month OTP)

RouteModeMode RankRecent OTPAll-Time OTPStops
71B - Highland ParkBUS89/8941.9%58.8%107
61C - McKeesport-HomesteadBUS88/8944.8%56.8%158
65 - Squirrel HillBUS87/8946.5%61.5%70
58 - GreenfieldBUS86/8949.8%60.8%102
61B - Braddock-SwissvaleBUS85/8950.1%58.4%137

Post-COVID Trends (2022 onward)

Slopes are computed via OLS with standard errors. Only statistically significant slopes (95% CI excludes zero) are listed below. 43 of 94 routes have slopes that are not statistically significant – their trend cannot be distinguished from flat.

Most improving (statistically significant):

RouteSlope (pp/yr)95% CIMonths
P78 - Oakmont Flyer+6.6[+5.0, +8.2]47
71D - Hamilton+4.1[+2.5, +5.7]47
O1 - Ross Flyer+3.4[+2.1, +4.6]47
39 - Brookline+3.2[+0.9, +5.5]45
G31 - Bridgeville Flyer+2.6[+1.6, +3.6]47

Most declining (statistically significant):

RouteSlope (pp/yr)95% CIMonths
65 - Squirrel Hill-8.3[-11.7, -4.9]46
71B - Highland Park-7.2[-8.8, -5.5]47
P12 - Holiday Park Flyer-5.8[-7.4, -4.2]47
81 - Oak Hill-5.8[-7.3, -4.3]47
61C - McKeesport-Homestead-5.4[-6.6, -4.2]47

Notable non-significant slopes: SWL (Outbound to SHJ) has a point estimate of -10.4 pp/yr but its 95% CI is [-34.7, +13.8] due to having only 13 observations over a 21-month span – the apparent steep decline cannot be statistically distinguished from zero.

Observation Span

Most routes with slopes have the full 47-month post-2022 span. Two routes have notably narrow observation windows:

Routes with narrow spans may have slopes that are less representative of sustained trends.

Observations

Missing Stop Count Data

5 routes lack stop count data because they have no entries in the route_stops table: SWL (Outbound to SHJ), 37 (Castle Shannon), 42 (Potomac), P2 (East Busway Short), and RLSH (Red Line Shuttle). Stop counts for these routes are reported as null.

Caveats

Review History

4. Neighborhood Equity

89 Pittsburgh-area neighborhoods were analyzed (3,760 of 6,466 stops excluded due to missing neighborhood data). OTP is now computed from route-level averages (each route weighted once regardless of how many months of data it has), weighted by trip frequency, with a minimum 12-month data requirement. There is a 25 percentage-point spread between the best- and worst-served neighborhoods (all modes pooled), narrowing to 20 pp for bus-only:

Worst-served neighborhoods:

Best-served neighborhoods:

Bus-only stratification reveals Simpson's paradox: Bon Air drops from rank 13 (pooled) to rank 53 (bus-only) because its high pooled OTP is driven by rail, not bus service. Beechview similarly drops 9 positions. The bottom neighborhoods are all-bus and unaffected.

The best-performing neighborhoods tend to be served by rail or busway routes (Overbrook and Beechview are on the light rail T line). The worst-performing neighborhoods are served primarily by high-frequency local bus routes with many stops. Neighborhood OTP estimates vary in precision (1 to 74 routes per neighborhood), so the 25 pp spread should be interpreted with that context. The equity gap between the top and bottom quintiles has remained roughly stable over time – all quintiles rise and fall together with the system, meaning the disparity is structural rather than worsening.

neighborhood_equity
Neighborhood Equity
weighted_vs_unweighted_otp
Weighted Vs Unweighted Otp
Detailed findings

Summary

There is a 25 percentage-point spread in OTP between the best- and worst-served neighborhoods (all modes pooled). When restricted to bus-only, the spread narrows to 20 pp but the bottom neighborhoods remain the same. The disparity is structural and stable over time – all neighborhoods rise and fall together with the system. OTP is now computed from route-level averages (each route weighted once regardless of how many months of data it has), weighted by trip frequency.

Worst-Served Neighborhoods

NeighborhoodMunicipalityOTP (pooled)OTP (bus-only)Routes
Regent SquarePittsburgh58.8%58.8%4
BluffPittsburgh59.2%59.2%16
Crawford-RobertsPittsburgh61.4%61.4%7
Squirrel Hill NorthPittsburgh61.6%61.6%12
Highland ParkPittsburgh61.9%61.9%5

The bottom neighborhoods are served entirely by bus, so their pooled and bus-only OTP are identical.

Best-Served Neighborhoods

NeighborhoodMunicipalityOTP (pooled)OTP (bus-only)Routes (all)Routes (bus)
OverbrookPittsburgh83.9%78.9%31
BeechviewPittsburgh80.7%75.5%32
BrooklinePittsburgh79.2%78.7%42
SheradenPittsburgh79.0%79.0%66
WindgapPittsburgh78.9%78.9%22

Bus-Only Stratification (Simpson's Paradox Check)

Restricting to BUS-mode routes reveals that some neighborhoods' high pooled OTP is driven by rail:

NeighborhoodPooled OTPBus-Only OTPPooled RankBus RankShift
Bon Air75.3%66.7%1353-40
North Shore74.5%70.7%1736-19
Beechview80.7%75.5%211-9

Bon Air is a clear case of Simpson's paradox: it appears well-served in the pooled analysis (rank 13) but drops to rank 53 (bus-only) because its high pooled OTP is driven almost entirely by rail service. Beechview similarly drops 9 positions.

The bus-only spread (20 pp) is narrower than the pooled spread (25 pp), confirming that rail inflates the apparent equity of neighborhoods it serves.

Frequency-Weighting Effect

Comparing trip-weighted OTP to unweighted (equal weight per route) reveals where high-frequency service diverges from the route average:

NeighborhoodWeightedUnweightedGap
Carrick71.1%77.2%-6.1%
Troy Hill72.4%66.7%+5.7%
Regent Square58.8%64.1%-5.4%

Observations

Caveats

Review History

5. Anomaly Investigation

842 anomalous months were flagged across 94 routes using a two-sided rolling z-score method with a lagged window (current month excluded from baseline, preventing self-dampening of z-scores). Both drops and spikes are detected. The routes with the most anomalies:

RouteAnomaliesNotes
79 - East Hills18Persistent instability
19L - Emsworth Limited16Limited-stop route
RED - Castle Shannon via Beechview15Rail line with high variability
54 - North Side-Oakland-South Side15Long cross-city route
28X - Airport Flyer14Express route

Anomaly rates vary by mode: BUS 11.8%, RAIL 14.3%, UNKNOWN 15.5%. RAIL's higher rate reflects its normally-consistent performance – even moderate dips trigger the 2-sigma threshold. With 7,076 evaluated observations, the expected false-positive rate under normality is ~322 (~4.6%); the actual 842 anomalies (2.6x expected) indicates most are genuine, though ~300-350 could be chance alone. The lagged window also introduces trend bias: declining routes are more likely to trigger negative anomalies because the baseline is always slightly stale. 4 routes with fewer than 7 months of data are excluded from detection.

The COVID period (March–June 2020) generated positive anomalies across many routes as reduced ridership temporarily improved schedule adherence. The late 2022 cluster of negative anomalies across many routes may indicate a system-wide disruption (staffing, construction, or service restructuring).

anomaly_profiles
Anomaly Profiles
Detailed findings

Summary

842 anomalous months were flagged across 94 routes using a rolling z-score method with a lagged window (current month excluded from the baseline). The detection is two-sided, flagging both sharp drops and spikes. Anomalies cluster in time (COVID, late 2022) rather than being randomly distributed, suggesting system-wide shocks.

Methodology Note

The anomaly detector uses a 12-month rolling window shifted by one month, so the current observation is never included in its own baseline. This prevents self-dampening of z-scores and produces more sensitive detection (842 anomalies vs. 406 with the unshifted approach). When the rolling standard deviation is near zero (constant OTP over the window), z-scores are set to 0.0 to avoid division-by-zero artifacts.

Routes with Most Anomalies

RouteAnomalies
79 - East Hills18
19L - Emsworth Limited16
RED - Castle Shannon via Beechview15
54 - North Side-Oakland-South Side15
28X - Airport Flyer14

Anomaly Rates by Mode

ModeAnomaliesTotal MonthsRate
BUS8016,79411.8%
RAIL3222414.3%
UNKNOWN95815.5%

RAIL routes show a slightly higher anomaly rate (14.3%) despite consistently high OTP. This is because their performance is normally very stable, so even moderate dips trigger the 2-sigma threshold. The 5 UNKNOWN-mode routes (RLSH, P2, 42, SWL, 37) are included in the analysis; most have very few months of data.

Expected vs Actual False-Positive Rate

With 7,076 evaluated route-month observations and a 2-sigma two-sided threshold, the expected false-positive rate under normality is approximately 4.6%, yielding ~322 expected false positives. The actual count of 842 anomalies is 2.6x the null expectation, indicating that a substantial majority of flagged anomalies reflect genuine OTP deviations beyond what random variation would produce. However, roughly 300-350 of the 842 could be expected by chance alone, so not every flagged anomaly should be interpreted as a "real" event.

Lagged-Window Trend Bias

The lagged rolling window introduces a systematic bias for trending routes. When a route's OTP is declining, the baseline (computed from the prior 12 months) is always slightly above the current value, making negative anomalies more likely. Conversely, improving routes are biased toward positive anomalies. This means the anomaly detector is more sensitive to deviations in the direction of the trend. No detrending is applied, so some fraction of flagged anomalies may reflect gradual trends rather than abrupt shocks.

Key Anomaly Clusters

Excluded Routes

4 routes were excluded from anomaly detection because they have fewer than 7 months of data (the rolling window requires shift(1) + min_samples=6):

RouteMonths
37 - Castle Shannon3
53 - Homestead Park2
42 - Potomac3
RLSH - Red Line Shuttle3

Observations

Caveats

Review History

6. Seasonal Patterns

PRT shows a consistent seasonal cycle after detrending (removing 12-month rolling mean), using a balanced panel of 93 routes present in all 12 months-of-year over complete calendar years (2019–2024):

This is somewhat counterintuitive – winter months outperform summer/fall despite weather. Possible explanations: lower ridership in winter reduces dwell time and crowding delays; summer construction seasons create detours; school-year schedules in fall increase congestion.

93 routes had sufficient data (3+ years) for route-level seasonal analysis. Most have a seasonal amplitude under 15%. The most seasonally affected routes are 15 (Charles, 15.8%), O5 (Thompson Run Flyer, 15.2%), and P2 (East Busway Short, 14.8%). Red-team review confirmed the pattern holds after correcting for route composition bias (winter-only routes with high OTP) and unbalanced year coverage.

seasonal_patterns
Seasonal Patterns
Detailed findings

Summary

PRT shows a consistent seasonal cycle with winter months outperforming summer/fall. The system-wide seasonal swing is about 6.8 percentage points after detrending. 93 routes had sufficient data (3+ years) for route-level seasonal analysis.

System-Wide Seasonal Profile

Computed from a balanced panel of 93 routes (present in all 12 months-of-year) over complete calendar years (2019–2024).

MonthWeighted OTPDeviation from Trend
January70.8%+2.8 pp (Best)
February68.9%+1.0 pp
March69.9%+2.1 pp
April68.1%+0.3 pp
May67.4%-0.4 pp
June66.7%-1.1 pp
July68.1%-0.2 pp
August67.2%-1.1 pp
September64.4%-3.9 pp (Worst)
October66.9%-1.3 pp
November68.4%+0.2 pp
December69.6%+1.4 pp

Methodology Note

Seasonal profiles are computed by first removing a 12-month centered rolling mean (trend), then averaging the detrended residuals by month-of-year. This ensures that long-term trends (e.g., the COVID dip) do not distort the seasonal pattern. Route-level analysis requires at least 3 years of data to ensure each month-of-year is represented multiple times.

Red-team corrections applied (2026-02-10):

Most Seasonally Affected Routes (detrended)

RouteSeasonal Amplitude
15 - Charles15.8%
O5 - Thompson Run Flyer via 27915.2%
P2 - East Busway Short14.8%

Observations

Caveats

Review History

7. Stop Count vs OTP

There is a moderately strong negative correlation between the number of stops on a route and its average OTP (routes with fewer than 12 months of data excluded):

The bus-only result rules out Simpson's paradox – the effect is not an artifact of mixing BUS and RAIL modes. Routes with fewer than 50 stops consistently achieve 80%+ OTP, while routes with 150+ stops struggle to reach 60%. This is the clearest structural predictor of OTP in the dataset. Note: stop counts come from the current route_stops snapshot while OTP is averaged across all historical months, so routes that changed stop configurations have a temporal mismatch.

stop_count_vs_otp
Stop Count Vs Otp
Detailed findings

Summary

There is a moderately strong negative correlation between the number of stops on a route and its average OTP. This finding holds for both all routes and bus-only analysis, ruling out Simpson's paradox as a confounder.

Key Numbers

Routes with fewer than 12 months of OTP data are excluded to avoid noisy averages from sparse observations.

Observations

Implication

Stop consolidation – reducing the number of stops on long routes – is a common transit strategy for improving schedule adherence. This data strongly supports that approach for PRT's worst-performing routes.

Caveats

Review History

8. Hot-Spot Map

6,212 stops were mapped with route-weighted OTP values (a derived metric: each stop inherits the average OTP of routes serving it, weighted by trip frequency – not independently measured stop performance). Routes with fewer than 12 months of data are excluded. Geographic patterns:

The worst-performing stops (55.8% OTP) are exclusively served by Route 77 (Penn Hills). The best-performing stops (88.4%) are served exclusively by Route 18 (Manchester) – a genuinely high-performing bus route, not rail. The system average in the chart is an unweighted stop-level average.

hotspot_map
Hotspot Map

An interactive version of this map is available as a companion file: hotspot_map.html

Detailed findings

Important: Derived Metric

Stop-level OTP is a derived metric: each stop inherits the average OTP of the routes serving it, weighted by trip frequency (trips_7d). It reflects route composition at each stop, not independently measured stop-level performance. A stop served by a single high-OTP route will appear "high-performing" even if that stop is a chronic delay point on that route. Conversely, a stop served by many routes will reflect the blended average of those routes.

Summary

6,212 stops were mapped with route-weighted OTP (after excluding 2 stops with null/NaN OTP due to zero total trips, and excluding routes with fewer than 12 months of data). Poor performance clusters in eastern Pittsburgh (Penn Hills, Squirrel Hill, Highland Park), while the best performance follows the light rail and busway corridors.

Geographic Patterns

Mode Context

The best-performing stops (88.4%) are all served exclusively by BUS routes – specifically Route 18 (Manchester). The high-OTP corridor along the T line reflects rail's structural advantage (dedicated right-of-way), not independently measured stop performance. When interpreting the map:

Observations

Caveats

Review History

9. Monongahela Incline Investigation

The Monongahela Incline (route MI) is a data pipeline artifact. It exists in the routes table with mode=INCLINE and has 2 associated stops (Upper and Lower stations, 78 weekday trips), but has zero entries in the OTP table. OTP was never measured or reported for this route. The same is true for the Duquesne Incline (route DQI). Both inclines are physically operational and appear in the GTFS feed, but were excluded from whatever OTP measurement system generated this dataset.

Detailed findings

Summary

The Monongahela Incline is a data pipeline artifact. It appears in the route catalog but has zero OTP measurements. OTP was never recorded for either of Pittsburgh's two inclines.

What the Data Shows

TableMI RecordsDetails
routes1 rowroute_id=MI, mode=INCLINE
otp_monthly0 rowsNo OTP data whatsoever
route_stops2 rowsUpper Station, Lower Station (78 weekday trips, 549 weekly)
stops2 Incline stopsW15307 (Upper, Mount Washington), W15308 (Lower, South Shore)
stop_reference4 Incline stopsBoth inclines present historically (first_served=1503, last_served=2510)

Observations

Conclusion

This is not a data quality issue to fix. The inclines were included in the route catalog because they're part of PRT's GTFS feed, but were excluded from OTP measurement, likely by design. No further action needed.

Review History

10. Trip Frequency vs OTP

There is no meaningful correlation between peak weekday trip frequency and OTP:

The previous finding (r = -0.39) was an artifact of using SUM(trips_wd) across all stops, which conflated trip frequency with route length (stop count). After correcting to MAX(trips_wd) (peak frequency at any single stop), the correlation vanishes entirely. Running more trips per se does not degrade OTP – the real driver is route complexity (stop count), not service volume. Routes with fewer than 12 months of OTP data are excluded. Three correlation tests were run without multiple-comparison correction; all are non-significant.

frequency_vs_otp
Frequency Vs Otp
Detailed findings

Summary

There is no meaningful correlation between peak weekday trip frequency and OTP. The previous finding (r = -0.39) was an artifact of using SUM(trips_wd) across stops, which conflated frequency with route length. After correcting to MAX(trips_wd) (peak frequency at any single stop), the correlation vanishes.

Key Numbers

Methodology Note

The original analysis summed trips_wd across all stops on a route. Because trips_wd is recorded per stop, a route with 50 trips per day and 100 stops produces a sum of ~5,000, while a route with 50 trips per day and 20 stops produces ~1,000. This made the metric a proxy for frequency x stop_count rather than pure frequency. Using MAX(trips_wd) isolates the peak trip frequency at the busiest stop, which is a better measure of how often the route actually runs.

Observations

Implication

PRT should not expect OTP penalties from increasing service frequency on existing routes. The capacity to run more trips does not inherently strain schedule adherence. The real lever for improving OTP is route design (stop count, right-of-way), not service volume.

Caveats

Review History

11. Directional Asymmetry

The correlation between directional trip imbalance and OTP is weak and not statistically significant (r = -0.12, p = 0.26, n = 90). After correcting the methodology to include bidirectional (IB,OB) stops in both directions and exclude one-direction-only routes, PRT routes show very little asymmetry – the most asymmetric route (19L) has only a 7.7% imbalance (7 vs 6 trips). The previous finding of routes with 100% asymmetry (Routes 11 and 60) was a data artifact. Including IB,OB stops in both directions can compress asymmetry toward zero when such a stop has the highest trip count, which is a known limitation. Routes with fewer than 12 months of OTP data are excluded. Three correlation tests were run without multiple-comparison correction; all are non-significant. This hypothesis did not yield actionable findings.

directional_asymmetry
Directional Asymmetry
Detailed findings

Summary

The correlation between directional trip imbalance and OTP is weak and not statistically significant (r = -0.12, p = 0.26). After correcting methodology issues in the original analysis, PRT routes show very little directional asymmetry, and what asymmetry exists does not predict OTP.

Key Numbers

Methodology Note

The original analysis used SUM(trips_wd) per direction and excluded stops with direction = 'IB,OB'. This inflated asymmetry because IB,OB stops (common on shared corridors) were dropped rather than counted in both directions. Routes 11 and 60 appeared 100% asymmetric because their IB stops were all coded as IB,OB. The corrected analysis uses MAX(trips_wd) per direction (peak frequency, not total stop-visits), includes IB,OB stops in both directions, and excludes routes present in only one direction.

Most Asymmetric Routes

RouteIB TripsOB TripsAsymmetryOTP
19L - Emsworth Limited760.07766.0%
67 - Monroeville27250.03860.4%
29 - Robinson22210.02365.1%

Observations

Conclusion

Directional imbalance does not predict OTP. PRT routes are sufficiently balanced that this is not a measurable factor in schedule adherence. The hypothesis that scheduling asymmetry creates operational strain is not supported by this data.

Caveats

Review History

12. Route Geographic Span vs OTP

Geographic span (max distance between any two stops) is a moderate negative predictor of OTP within bus routes (r = -0.38, p < 0.001), stronger than the pooled all-mode result (r = -0.32) which was muted by Simpson's paradox. Stop count is the stronger factor:

Stop density (stops per km) shows no correlation with OTP (r = 0.04). Both route length and stop count independently degrade OTP, but stop consolidation is the higher-leverage intervention – roughly twice the impact of shortening routes.

span_vs_otp
Span Vs Otp
density_vs_otp
Density Vs Otp
Detailed findings

Summary

Geographic span (the maximum distance between any two stops on a route) is a moderate negative predictor of OTP within bus routes (r = -0.38, p < 0.001), but stop count remains the stronger predictor after controlling for the other. Partial correlation analysis disentangles the two: stop count predicts OTP even after controlling for span (partial r = -0.41, p < 0.001), while span's independent contribution is smaller (partial r = -0.23, p = 0.03).

Key Numbers

Observations

Implication

Both stop count and route distance independently degrade OTP, but stop consolidation is the higher-leverage intervention. Shortening routes would help modestly, but eliminating stops on existing routes would have roughly twice the impact per unit of change.

Caveats

Review History

13. Cross-Route Correlation Clustering

After detrending (subtracting system-wide monthly mean), hierarchical clustering on pairwise OTP correlations produced 6 clusters (silhouette-optimized, k=6, score=0.178). Detrending removes the dominant COVID/seasonal signal. The resulting clusters show moderate separation: the best cluster (9 routes, 74.0% OTP) and worst (23 routes, 66.8% OTP) differ by 7.2 pp. Low silhouette scores indicate the cluster structure is suggestive rather than definitive. Without depot or corridor data, we cannot confirm what drives co-movement.

correlation_heatmap
Correlation Heatmap
dendrogram
Dendrogram
Detailed findings

Summary

After detrending (subtracting system-wide monthly mean OTP), hierarchical clustering on pairwise OTP correlations produced 6 clusters (selected by silhouette score optimization). Detrending removes the dominant COVID/seasonal signal that otherwise causes all routes to appear positively correlated, revealing genuine differential behavior.

Key Numbers

ClusterRoutesAvg OTPAvg StopsCharacter
12366.8%118Lowest-performing cluster, high stop count
2974.0%114Best-performing cluster
32771.8%105Largest cluster, above-average performance
41169.4%106Mid-performing
51367.5%108Below-average
61068.9%146Highest stop count

Methodology

Observations

Caveats

Review History

14. COVID Recovery Trajectories

Of 92 routes, 43 improved and 49 declined vs pre-COVID baseline (2019-01 to 2020-02 vs 2024-12 to 2025-11). However, a significant regression-to-the-mean effect (r = -0.25, p = 0.02) means much of the divergence is statistical rather than operational. The Kruskal-Wallis test across subtypes is not significant (p = 0.24), meaning there is no defensible evidence that premium routes recovered better as a group.

The most-improved routes (P7 +17 pp, G2 +13 pp) tend to be premium types, while the most-declined (71B -21 pp, 58 -21 pp, 65 -19 pp) are eastern-neighborhood local bus routes. But the extreme cases are partially explained by regression to the mean. The policy-relevant finding is narrower: specific local bus routes in the eastern corridor have deteriorated badly beyond what RTM alone predicts.

recovery_distribution
Recovery Distribution
recovery_by_mode
Recovery By Mode
regression_to_mean
Regression To Mean
Detailed findings

Summary

The system-wide OTP decline since COVID is unevenly distributed. Of 92 routes with data in both periods, 43 improved and 49 declined, with a median delta of -0.9 pp and a mean delta of -2.1 pp. However, a significant regression-to-the-mean effect (r = -0.25, p = 0.02) means that much of the apparent divergence between "improved" and "declined" routes is a statistical artifact: routes with extreme baselines naturally regress toward the mean.

Key Numbers

Most Improved / Most Declined

Most improved:

RouteBaselineCurrentDelta
P7 - McKeesport Flyer58.7%75.8%+17.1 pp
G2 - West Busway75.4%88.4%+13.0 pp
21 - Coraopolis67.8%80.2%+12.4 pp

Most declined:

RouteBaselineCurrentDelta
71B - Highland Park63.0%41.9%-21.1 pp
58 - Greenfield70.4%49.8%-20.6 pp
65 - Squirrel Hill65.5%46.5%-19.0 pp

Observations

Implication

The recovery picture is more nuanced than "premium routes improved, local routes declined." RTM explains a substantial fraction of the divergence. The policy-relevant finding is narrower: specific local bus routes in the eastern corridor have deteriorated badly (15-21 pp below pre-COVID levels), and this decline exceeds what RTM alone would predict.

Caveats

Review History

15. Municipal/County Equity

81 municipalities analyzed (better coverage than the 89 neighborhoods in Analysis 04). The spread is 24.9 pp: Castle Shannon borough (84.0%, on T line) to Plum borough (59.1%, long local bus). Suburban median OTP (68.1%) is near the system average – no systematic suburban disadvantage. Cross-jurisdictional routes perform identically to single-municipality routes (Welch's t-test p = 0.86), confirming that mode and stop count matter more than geography.

top_bottom_municipalities
Top Bottom Municipalities
pittsburgh_vs_suburban
Pittsburgh Vs Suburban
Detailed findings

Summary

81 municipalities had enough stops (10+) to analyze. There is a 25 pp spread between the best and worst municipalities, similar to the neighborhood-level equity gap. Cross-jurisdictional routes (serving 2+ municipalities) perform no differently from single-municipality routes.

Key Numbers

Observations

Implication

The equity gap is driven by mode and route structure, not by geography per se. Municipalities on rail or busway corridors get 80%+ OTP; those served only by long local bus routes get 60%. Municipal boundaries and suburban/urban distinctions are not meaningful predictors.

Caveats

Review History

16. Transfer Hub Performance

Stop-level data suggests hubs have modestly worse OTP (simple 69.5% vs hub 66.4%), but the stop-level correlation (r = -0.17) uses non-independent observations (n=6,209 stops sharing ~90 underlying route OTP values). At the route level (independent, n=93), the correlation is not significant (r = -0.15, p = 0.16). Bus-only: r = -0.09, p = 0.39. The apparent "hub penalty" is a composition effect: hubs are served by many routes including poor performers, not because hub locations cause worse OTP. The busiest hub (East Busway Penn Station, 27 routes) outperforms the system average (72.1%).

connectivity_vs_otp
Connectivity Vs Otp
hub_tier_comparison
Hub Tier Comparison
Detailed findings

Summary

Higher-connectivity stops appear to have modestly worse OTP in stop-level data, but this finding does not survive correction for non-independence. At the route level (independent observations), the correlation between stop connectivity and OTP is not significant (r = -0.15, p = 0.16). The apparent "hub penalty" is a composition effect driven by inflated sample size at the stop level.

Key Numbers

TierStopsMean OTPMedian OTP
Simple (1 route)3,87569.5%69.2%
Medium (2-4 routes)2,13866.0%65.0%
Hub (5+ routes)19666.4%65.2%

Stop-level (n=6,209 – non-independent, inflated power):

Route-level (n=93 – independent observations):

Route-level, bus only (n=90):

Observations

Implication

Being a transfer hub does not independently predict worse OTP. The apparent hub penalty is driven by which routes converge there. Policy should focus on improving the poorly-performing routes themselves, not on the hub locations.

Caveats

Review History

17. Weekend vs Weekday Service Profile

There is no correlation between weekend-to-weekday service ratio and OTP (r = -0.03, p = 0.79). Weekday-heavy routes (69.8%), balanced routes (68.8%), and weekend-heavy routes (70.3%) perform virtually identically. Service profile is not a useful predictor of reliability.

weekend_ratio_vs_otp
Weekend Ratio Vs Otp
service_tier_comparison
Service Tier Comparison
Detailed findings

Summary

There is no meaningful correlation between a route's weekend-to-weekday service ratio and its OTP. Routes that run heavy weekend service perform identically to commuter-oriented weekday-heavy routes.

Key Numbers

Service TierRoutesMean OTP
Weekday-heavy (<0.3)2769.8%
Balanced (0.3-0.7)4568.8%
Weekend-heavy (>0.7)2170.3%

Observations

Implication

Weekend vs weekday service intensity is not a useful predictor of OTP. The structural factors identified in other analyses (stop count, mode, route length) dominate.

Review History

18. Multivariate OTP Model

A six-feature OLS model explains 47.2% of OTP variance (adj R² = 0.435, n = 92). Three features are significant:

FeatureBeta Weightp-value
Stop count-0.49<0.001
Geographic span (km)-0.47<0.001
Rail mode+0.34<0.001
N municipalities (suppressor)+0.410.001
Premium bus subtype+0.050.70
Weekend ratio-0.030.79

VIF values for all predictors are below 3, indicating moderate but manageable multicollinearity. The n_munis variable acts as a suppressor – its positive coefficient does not mean crossing more jurisdictions helps OTP, but rather that it partials out shared variance with stop count and span. A reduced model without n_munis yields R² = 0.40; a bus-only model (no rail dummy needed) yields R² = 0.38, confirming the findings generalize within the dominant mode.

Premium bus advantage disappears after controlling for stop count and span – those routes simply have fewer stops. The unexplained 53% likely reflects traffic, schedule design, staffing, and weather.

coefficient_plot
Coefficient Plot
predicted_vs_actual
Predicted Vs Actual
Detailed findings

Summary

A six-feature OLS model explains 47.2% of OTP variance (adjusted R² = 0.435) across 92 routes. Three features are significant: stop count, geographic span, and rail mode. The model confirms that structural route characteristics explain nearly half of all performance variation, with the remaining 53% attributable to unmeasured factors (traffic, staffing, weather, schedule design).

Key Numbers

FeatureCoefficientp-valueBeta WeightSignificant?
stop_count-0.0006<0.001-0.49***
span_km-0.0049<0.001-0.47***
is_rail+0.133<0.001+0.34***
n_munis+0.0090.001+0.41**
is_premium_bus+0.0070.70+0.05
weekend_ratio-0.0060.79-0.03

Observations

Model Interpretation

The 47% R² means that knowing just a route's stop count, length, and mode gets you almost halfway to predicting its OTP. The unexplained 53% likely reflects:

These factors would require operational data not present in this dataset.

Caveats

Review History

19. Ridership-Weighted OTP

Ridership-weighted system OTP (69.4%) runs +1.6 percentage points higher than trip-weighted OTP (67.8%), and the difference is highly significant (paired t = -18.1, p < 0.001, n = 70 months). The average PRT rider experiences slightly better on-time performance than the trip-weighted system average suggests.

Weighting SchemeMean OTPMedian OTP
Unweighted (all routes equal)69.9%70.3%
Trip-weighted (scheduled frequency)67.8%67.8%
Ridership-weighted (avg daily riders)69.4%69.2%

Both weighted series fall below the unweighted average, meaning both scheduled trips and actual riders concentrate somewhat on worse-performing routes. However, trip frequency overstates how much ridership is concentrated on the worst routes – high-frequency routes tend to have many stops and poor OTP (Analysis 07), but riders don't fill those trips proportionally. This does not mean high-ridership routes have better OTP; it means ridership is distributed more evenly across the OTP spectrum than trip frequency is. The gap between trip-weighted and ridership-weighted was near zero during COVID (2020), widened to ~3 pp in late 2022, and has stabilized around 1–2 pp since 2023, likely reflecting post-COVID ridership redistribution. Analysis uses 93 routes with 12+ months of paired data over the Jan 2019 – Oct 2024 overlap period.

ridership_weighted_otp_trend
Ridership Weighted Otp Trend
Detailed findings

Summary

Ridership-weighted system OTP (69.4%) runs 1.6 percentage points higher than trip-weighted OTP (67.8%), and the difference is statistically significant (paired t = -18.1, p < 0.001; Wilcoxon W = 1, p < 0.001). This means the average PRT rider experiences slightly better on-time performance than the trip-weighted system average suggests.

Key Numbers

Interpretation

Both weighted series fall below the unweighted average, meaning both scheduled trips and actual riders concentrate somewhat on worse-performing routes. However, trip frequency overstates how much ridership is concentrated on the worst routes. High-frequency routes tend to have many stops and poor OTP (Analysis 07), but riders don't fill those trips proportionally – some high-frequency routes carry fewer riders per trip than expected. The result is that the average rider's experience is worse than the average route's OTP, but not as bad as the trip-weighted number implies.

This does not mean high-ridership routes have better OTP. It means ridership is distributed more evenly across the OTP spectrum than trip frequency is.

Observations

Caveats

20. OTP -> Ridership Causality

There is no evidence that OTP declines predict subsequent ridership losses. After detrending (subtracting system monthly mean) and Bonferroni correction, 0 of 93 routes show statistically significant Granger causality from OTP to ridership (8/93 at uncorrected p < 0.05, consistent with chance). The lagged cross-correlations are weakly negative at all lags (median r = -0.18 at lag 0, flat through lag 6), suggesting reverse causality: months with lower ridership tend to have better OTP (less crowding, shorter dwell times), not that good OTP attracts riders. The null result may reflect monthly data being too coarse, riders having no alternative transit options, or confounders (employment, gas prices, COVID) dominating the signal. Analysis uses 93 routes with 36–70 months of paired data, detrended before testing.

granger_summary
Granger Summary
lagged_crosscorr
Lagged Crosscorr
Detailed findings

Summary

There is no evidence that OTP declines predict subsequent ridership losses. After detrending and Bonferroni correction, zero of 93 routes show statistically significant Granger causality from OTP to ridership. The raw cross-correlations are weakly negative, suggesting the opposite direction: months with lower ridership tend to have better OTP.

Key Numbers

Observations

Discussion

The hypothesis that poor OTP drives riders away is intuitive, but this data cannot confirm it. Several factors may explain the null result:

Caveats

21. COVID Ridership vs OTP Recovery

Zero of 93 routes have recovered to pre-COVID weekday ridership (median -43%). Routes that lost more ridership tended to see better OTP recovery (Pearson r = -0.21, p = 0.047; Spearman r = -0.29, p = 0.005), weakly supporting a crowding mechanism: fewer riders means shorter dwell times and better schedule adherence. However, the system is running far fewer riders and OTP has still declined for 58/93 routes, indicating the OTP decline is primarily driven by operational factors (staffing, traffic) rather than demand-side crowding. No subtype (local, flyer, busway, rail) recovered OTP significantly better than others (Kruskal-Wallis p = 0.58). Flyer routes lost the most ridership (median -68%) due to commute-demand collapse.

recovery_by_subtype
Recovery By Subtype
recovery_scatter
Recovery Scatter
Detailed findings

Summary

Zero of 93 routes have recovered to pre-COVID ridership levels (median -43%, all negative). Routes that lost more ridership tended to see better OTP recovery (r = -0.21, p = 0.047), weakly supporting the hypothesis that ridership recovery degrades OTP through crowding and longer dwell times.

Key Numbers

Observations

Discussion

The weak negative correlation between ridership recovery and OTP recovery is consistent with a crowding mechanism: routes that regained more riders saw their OTP degrade (or fail to improve), while routes that stayed emptier ran closer to schedule. However, the effect is weak (r = -0.21) and the correlation is borderline significant (p = 0.047), so it should be interpreted cautiously.

The most policy-relevant finding is the universal ridership collapse: every single route is still below pre-COVID levels, with a median loss of 43%. This dwarfs any OTP effects. The system is running fewer riders on roughly the same infrastructure, and OTP has still declined for most routes – suggesting that the OTP decline is driven by operational factors (staffing, vehicle maintenance, traffic congestion) rather than demand-side crowding alone.

The absence of subtype differences (Kruskal-Wallis p = 0.58) confirms Analysis 14's finding: no route type has recovered OTP systematically better or worse than others.

Caveats

22. Passenger-Weighted Delay Burden

Over Jan 2019 – Oct 2024, PRT accumulated 55.5 million late weekday rider-trips (31% late rate). The top 10 routes account for 26.6% of all late rider-trips. Ridership weighting substantially reshuffles route priorities: Route 51 (Carrick) ranks only 55th by OTP (68.6%) but 2nd by delay burden due to massive ridership, while Route 77 (worst OTP at 54.9%) ranks only 18th by burden. The Spearman rank correlation between OTP rank and burden rank is only 0.40 – OTP rank alone is a poor proxy for human impact. The biggest upward shifts are high-ridership rail/busway routes (P1 +77 ranks, RED +72); the biggest downward shifts are low-ridership flyers (65 -70, P69 -66). The system's total delay burden has paradoxically decreased post-COVID – not because OTP improved, but because ridership collapsed.

delay_burden_trend
Delay Burden Trend
rate_vs_burden
Rate Vs Burden
top10_burden
Top10 Burden
Detailed findings

Summary

Over the Jan 2019 – Oct 2024 overlap period, PRT accumulated 55.5 million late weekday rider-trips out of 179.2 million total (31% late rate). The top 10 routes by delay burden account for 26.6% of all late rider-trips, and ridership weighting substantially reshuffles which routes appear most problematic compared to a pure OTP ranking.

Key Numbers

Top 10 Routes by Delay Burden

Burden RankRouteOTP RankAvg OTPCumulative Late Rider-Trips
161C - McKeesport-Homestead359.0%2,765,662
251 - Carrick5568.6%2,360,226
371C - Point Breeze860.9%2,241,803
461A - North Braddock760.6%2,135,034
571B - Highland Park1061.9%2,086,371

Route 51 (Carrick) is the standout example: it ranks only 55th by OTP (68.6%, near the system average) but 2nd by delay burden because it carries massive ridership. Conversely, Route 77 (Penn Hills) has the worst OTP (54.9%) but ranks only 18th by burden because fewer people ride it.

Observations

Discussion

This analysis reframes the OTP problem from "which routes are most unreliable" to "where does unreliability affect the most people." The two questions give different answers. A policy intervention on Route 51 (the #2 burden route) would affect more riders than fixing Route 77 (the #1 worst OTP route), even though 51's OTP is 14 pp better. Similarly, even small OTP improvements on high-ridership rail/busway routes would reduce more late rider-trips than large OTP improvements on low-ridership flyers.

The system's total delay burden has paradoxically decreased post-COVID – not because service improved, but because fewer people are riding. If ridership recovers without OTP improvements, the burden will return to or exceed pre-COVID levels.

Caveats

23. Garage-Level Performance

PRT garages differ significantly in route-level OTP, and the difference survives controlling for route structure (stop count + span). A bus-only OLS model shows garage dummies add significant explanatory power beyond structural controls (F = 4.55, p = 0.005, R² increase from 0.31 to 0.41). Collier routes run +5.4 pp above East Liberty after controls (p < 0.001); Ross runs +2.9 pp (p = 0.04). West Mifflin's poor raw performance is largely explained by route structure (+1.4 pp, p = 0.36 after controls). The Collier advantage is operationally meaningful and could reflect corridor-level traffic differences or garage-specific practices. All garages move together on system-wide trends; relative ordering is stable over time.

garage_boxplot
Garage Boxplot
garage_otp_trend
Garage Otp Trend
Detailed findings

Summary

PRT garages differ significantly in route-level OTP, and the difference survives controlling for route structure. An OLS model with stop count and geographic span as controls shows that garage dummies add significant explanatory power (F = 4.55, p = 0.005). Collier garage routes run +5.4 pp above East Liberty routes after controlling for stop count and span (p < 0.001).

Key Numbers

GarageRoutesMean OTPRidership-Wtd OTPAvg Daily Riders
South Hills Village385.4%85.3%11,588
Collier1873.6%73.9%14,226
Ross2270.7%69.5%20,141
West Mifflin1967.9%65.8%32,388
East Liberty3167.1%67.5%42,259

Controlled OLS Model (bus only, n = 89, reference = East Liberty)

ModelAdj R²
Base (stop_count + span)0.3130.297
Full (+ garage dummies)0.4100.374

F-test for garage dummies: F = 4.55, p = 0.005 – garages are significant after controls.

FeatureCoefficientp-value
stop_count-0.000390.001
span_km-0.00220.014
garage_Collier+0.054<0.001
garage_Ross+0.0290.040
garage_West_Mifflin+0.0140.358

Observations

Discussion

The controlled analysis overturns the initial interpretation that garage differences were purely a composition effect. Collier's advantage is real and operationally meaningful: after accounting for the fact that it operates shorter routes with fewer stops, Collier routes still outperform East Liberty routes by 5.4 pp. This could reflect differences in traffic conditions in the western suburbs, garage-level operational practices (scheduling, dispatch, maintenance), or corridor-specific factors not captured by stop count and span alone.

West Mifflin's poor raw performance, by contrast, is largely explained by route structure: it operates the long eastern-corridor routes, and after controlling for that, it is statistically indistinguishable from East Liberty.

The R² increase from 0.31 to 0.41 suggests that garage assignment captures roughly 10% of OTP variance beyond what stop count and span explain – a nontrivial amount that warrants further investigation with operational data (staffing, vehicle age, traffic conditions by corridor).

Caveats

24. Weekday vs Weekend Ridership Trends

Weekend ridership has recovered far more strongly than weekday ridership since COVID. As of October 2024, Saturday service is at 90.7% of its January 2019 level and Sunday at 83.9%, while weekday service is at just 64.5% – a 26 pp gap. Weekend's share of total ridership rose from 13.6% pre-COVID to 17.8% post-2023 (+4.2 pp), a structural shift consistent with remote work reducing weekday commuting while discretionary weekend travel returns. The weekend-to-weekday ridership ratio does not significantly correlate with route-level OTP (Pearson r = -0.20, p = 0.097, n = 67 routes), meaning the weekday ridership collapse is driven by exogenous demand factors, not service quality differences. Both Saturday and Sunday series show stronger seasonal swings (summer peaks, winter troughs) than weekday, consistent with weather-sensitive discretionary travel.

daytype_ridership_trend
Daytype Ridership Trend
weekend_share_trend
Weekend Share Trend
weekend_share_vs_otp
Weekend Share Vs Otp
Detailed findings

Summary

Weekend ridership has recovered far more strongly than weekday ridership since COVID. As of October 2024, Saturday service is at 90.7% of its January 2019 level while weekday service is at just 64.5%. Weekend's share of total ridership rose from 13.6% pre-COVID to 17.8% post-2023, a +4.2 pp structural shift. The weekend-to-weekday ridership ratio does not significantly correlate with route-level OTP (Pearson r = -0.20, p = 0.097).

Key Numbers

Observations

Discussion

The 26-percentage-point gap in recovery between weekday (64.5%) and Saturday (90.7%) service is the headline finding. This is consistent with national trends: remote and hybrid work has permanently reduced weekday commuting, while discretionary weekend travel has largely returned. For PRT, this means:

  1. Revenue and planning implications: The traditional weekday-peak service model serves a shrinking share of total demand. Weekend service, historically treated as reduced-frequency filler, now carries a proportionally larger role.
  2. OTP is not driving the gap: Weekend-heavy routes do not have significantly different OTP, suggesting the weekday ridership collapse is driven by exogenous factors (remote work) rather than service quality differences between day types.
  3. Seasonal patterns visible: Both Saturday and Sunday series show strong seasonal swings (summer peaks, winter troughs) that are more pronounced than weekday patterns, consistent with discretionary travel being more weather-sensitive.

Caveats

25. Ridership Concentration & Equity

Ridership is moderately concentrated on low-OTP routes. The bottom quintile by OTP (Q1, avg 61.2%) carries 29.6% of all ridership (32.7% bus-only), far more than its 20% "fair share." Half of all bus ridership is on just 33/89 routes with OTP below 66.8%. The Gini concentration index is 0.068 (all routes) and 0.145 (bus-only) – rail in Q5 masks a more pronounced bus equity problem. The quintile distribution is U-shaped: both Q1 (worst OTP, high-ridership local bus) and Q5 (best OTP, rail/busway) carry disproportionate ridership, while mid-performing routes carry the least. Targeting Q1 bus routes (18 routes, 32.7% of bus ridership, avg OTP 61.2%) offers the highest human impact per intervention.

quintile_summary
Quintile Summary
ridership_lorenz
Ridership Lorenz
Detailed findings

Summary

Ridership is moderately concentrated on low-OTP routes. The bottom quintile of routes by OTP (Q1, avg 61.2%) carries 29.6% of all ridership (32.7% bus-only), far more than its 20% "fair share." Half of all bus ridership is carried by just 33 of 89 routes, all with OTP below 66.8%. The Gini concentration index is modest (0.068 all routes, 0.145 bus-only), indicating the inequity is real but not extreme.

Key Numbers

Observations

Discussion

The equity picture is mixed. On one hand, the worst-performing routes carry a disproportionate share of riders – nearly 30% of ridership on the bottom 20% of routes. On the other hand, the best routes (Q5) also carry substantial ridership, so it is not the case that reliable service is reserved for lightly-used routes. The U-shape reflects PRT's system structure: high-ridership corridors tend to be either long, many-stop local bus routes (which have poor OTP due to route complexity, per Analysis 07) or dedicated right-of-way routes (rail/busway, which have good OTP). Middle-performing routes tend to be lower-ridership suburban and express services.

The bus-only Gini (0.145) is more than double the all-mode Gini (0.068), confirming that rail's presence in Q5 masks a more pronounced equity problem within bus service. If PRT seeks to improve the rider-weighted experience, targeting the Q1 bus routes (avg OTP 61.2%, 32.7% of bus ridership) offers the highest human impact per intervention.

Caveats

26. Ridership in Multivariate OTP Model

Adding log-transformed average weekday ridership to the Analysis 18 six-feature OLS model does not significantly improve explanatory power (F = 2.53, p = 0.116). R² increases by only 1.5 pp (0.499 to 0.514). Ridership is not collinear with stop count or span (VIF = 1.73), but is redundant with existing structural predictors. A ridership-only model (log_riders + is_rail) explains just 23.2% of variance versus 49.9% for the structural model. High ridership does not independently degrade OTP – poor-performing routes happen to have high ridership because they are long, many-stop corridors, not because passenger volumes cause delays. This reinforces Analysis 10 (trip frequency null) and Analysis 19 (ridership-weighted OTP slightly higher than trip-weighted).

coefficient_comparison
Coefficient Comparison
partial_residual
Partial Residual
Detailed findings

Summary

Adding log-transformed average weekday ridership to the Analysis 18 multivariate model does not significantly improve explanatory power. The F-test for the ridership term is not significant (F = 2.53, p = 0.116), and R² increases by only 1.5 pp (from 0.499 to 0.514). Ridership is not collinear with stop count or span (VIF = 1.73), but it is largely redundant with the existing predictors – once route structure is controlled for, knowing how many people ride a route tells you almost nothing additional about its OTP.

Key Numbers

ModelAdj R²n
Base (6 features, Analysis 18 replication)0.4990.46492
Expanded (+ log_riders)0.5140.47392
Bus-only base (5 features)0.3920.35589
Bus-only expanded (+ log_riders)0.4100.36789
Ridership-only (log_riders + is_rail)0.2320.21592

Expanded model coefficients

FeatureBeta Weightp-value
stop_count-0.43<0.001
span_km-0.47<0.001
is_rail+0.43<0.001
n_munis+0.350.005
log_riders-0.160.116
is_premium_bus+0.080.511
weekend_ratio+0.060.605

Observations

Discussion

This is a clean null result. Ridership does not add meaningful information to the OTP model once route structure is accounted for. The practical implication is that PRT does not need to worry that high ridership per se degrades OTP – the routes with poor OTP happen to have high ridership because they are long, many-stop local bus corridors, not because passenger volumes cause delays. This is consistent with Analysis 10's finding that trip frequency does not predict OTP.

The weak negative direction of the ridership coefficient (-0.16 beta) is suggestive but not significant, and it could reflect residual confounding (high-ridership routes serve congested urban corridors) rather than a causal ridership-to-delay mechanism.

Caveats

27. Traffic Congestion and OTP

Total traffic volume (AADT) does not explain OTP variance after controlling for structural features (F=0.011, p=0.92, R2 change +0.0001). Routes on high-traffic roads perform no differently than those on quieter ones. However, truck percentage is a significant predictor (p=0.006, beta=+0.26), jointly boosting R2 from 0.40 to 0.45 when added alongside AADT (joint F=3.97, p=0.023). The positive truck coefficient likely proxies for road classification – truck-heavy corridors are wider arterials with longer signal phases and more predictable flow, not a direct truck-bus interaction. VIF for log_aadt is just 1.17 – traffic volume is orthogonal to the structural features already in the model, it simply has no effect. 89 routes were matched to 2,923 PennDOT road segments via KDTree spatial join (median match rate 80%); 3 rail routes excluded for low match rate (<30%).

The null AADT result most likely reflects a measurement mismatch: AADT is a 24-hour annual average that smooths over peak-hour congestion, which is when buses operate most and are most affected. Peak-hour or speed/travel-time data would be a stronger test. The cumulative model-building picture across Analyses 18, 26, and 27 is that roughly half of OTP variance is explained by route geometry and road type (stop count, span, mode, truck share), and the other half likely requires operational data (schedule padding, driver availability, real-time traffic) not available in this dataset. For policy, the null result suggests rerouting buses to lower-traffic roads would not improve OTP; the truck_pct finding reinforces that arterial alignment (fewer stops per mile, better infrastructure) is the structural advantage.

aadt_vs_otp_scatter
Aadt Vs Otp Scatter
coefficient_comparison
Coefficient Comparison
partial_residual
Partial Residual
Detailed findings

Summary

Total traffic volume (AADT) does not explain OTP variance after controlling for structural features (F=0.011, p=0.92). However, truck percentage is a significant predictor (p=0.006), jointly boosting R2 from 0.40 to 0.45. Routes with higher truck traffic perform better on-time, likely because truck-heavy corridors tend to be wider arterials with fewer stops and more predictable traffic flow.

Key Numbers

Observations

Discussion

The headline result is a null: traffic volume, the leading candidate for explaining the remaining 50% of OTP variance after structural features, contributes essentially nothing (R2 change of 0.01%). This is not a measurement failure – the VIF of 1.17 confirms that AADT is nearly orthogonal to stop count and span, so it had every opportunity to capture independent variance. It simply doesn't.

Why not? The most likely explanation is that AADT measures the wrong thing. Annual average daily traffic smooths over the peak-hour congestion that actually delays buses. A road carrying 15,000 vehicles/day spread evenly across 24 hours is very different from one carrying the same total with 40% concentrated in two rush-hour peaks. PRT buses operate disproportionately during those peaks, so the congestion they experience is poorly proxied by a 24-hour average. Directional, time-of-day traffic counts – or better yet, speed/travel-time data from probe vehicles – would be a more direct test.

The truck percentage finding is the genuine contribution of this analysis. At +0.26 beta weight (third-strongest after stop count and span), truck share adds 5 percentage points of explained variance. But this almost certainly proxies for road classification rather than a direct truck-bus interaction. Roads with high truck percentages tend to be state highways and major arterials – wider, with longer signal cycles, fewer pedestrian crossings, and more predictable traffic flow. The truck_pct variable is effectively encoding "this route runs on a highway" in a way that is_premium_bus failed to capture (since many non-premium routes also use arterial segments for part of their alignment).

This connects to the broader model-building narrative across Analyses 18, 26, and 27. The base model (stop count + span + mode) explains ~40% of variance. Adding n_munis as a suppressor pushes it to ~47%. Adding truck_pct pushes it to ~45% on the traffic-matched subsample. Ridership (Analysis 26) added nothing. The cumulative picture is that roughly half of OTP variance is explained by route geometry and road type, and the other half likely requires operational data (schedule padding, driver availability, vehicle condition, real-time traffic conditions) that is not in this dataset.

For policy, the null AADT result is actually useful: it suggests that rerouting buses to lower-traffic roads would not improve OTP, since traffic volume per se is not the problem. The truck_pct finding, if it indeed proxies for road type, suggests that routes spending more of their alignment on arterials (vs. neighborhood streets) perform better – consistent with the stop count finding, since arterial segments typically have fewer stops per mile.

Caveats

28. Weather Impact on OTP

Weather variables show moderate raw correlations with system OTP (freeze_days r=+0.44, mean_tmin r=-0.40) that strengthen after detrending (freeze_days r=+0.57, mean_tmin r=-0.57), but the direction is counterintuitive – colder, snowier months have better OTP. Weather jointly adds 15pp of R2 beyond a linear trend (F=3.44, p=0.008) at the system level, but does not significantly improve on month-of-year dummies (F=0.92, p=0.48). Conversely, month dummies do not significantly improve on weather variables either (F=1.09, p=0.39). Weather and seasonality are statistically interchangeable – both capture the same seasonal signal through different variables, and neither adds beyond the other.

Weather adjustment partially flattens the seasonal profile from Analysis 06: January's peak drops from 70.8% to 68.4% (-2.4pp) and September's trough rises from 64.0% to 65.3% (+1.3pp), narrowing the best-to-worst spread from 6.8pp to 3.8pp. Only September retains a significant month dummy (p=0.039) in the combined model.

At the route-month level (n=6,672, 72 monthly clusters), weather explains just 4.5% of within-route OTP variation. With cluster-robust standard errors (acknowledging weather is constant across routes within a month), no weather variable is significant (all p>0.12). Weather is a system-level seasonal modulator, not a route-level discriminator – all routes respond similarly to weather, providing no discriminating power for individual route performance. The counterintuitive cold=better direction suggests the mechanism is seasonal demand patterns (lower winter ridership and congestion) rather than weather as an impediment.

seasonal_weather_adjusted
Seasonal Weather Adjusted
weather_correlation_heatmap
Weather Correlation Heatmap
weather_otp_timeseries
Weather Otp Timeseries
weather_scatter_matrix
Weather Scatter Matrix
Detailed findings

Summary

Weather variables show moderate raw correlations with system OTP (freeze_days r=+0.44, mean_tmin r=-0.40, snow_days r=+0.40) that strengthen after detrending (freeze_days r=+0.57, mean_tmin r=-0.57), but these correlations are counterintuitive – colder, snowier months have better OTP. Weather jointly adds 15pp of R2 beyond a linear trend (F=3.44, p=0.008) but does not significantly improve on month dummies (F=0.92, p=0.48). The seasonal pattern from Analysis 06 is partially explained by weather – weather adjustment flattens the winter peak by ~2.4pp and lifts the September trough by ~1.3pp – but month dummies add no significant additional explanatory power beyond weather either (F=1.09, p=0.39). At the route-month level with cluster-robust standard errors, no weather variable is significant (all p>0.12), indicating weather effects are too small relative to route-level noise to detect in the panel.

Key Numbers

Observations

Discussion

The key finding is that weather and seasonality are statistically interchangeable at the system level – they capture overlapping variance, and neither adds significantly beyond the other. This means the Analysis 06 seasonal pattern can be described as a weather pattern (cold months = better OTP) but we cannot determine whether weather causes the pattern or merely co-occurs with other seasonal factors (school schedules, construction seasons, ridership patterns).

The counterintuitive direction (cold = better OTP) suggests the mechanism is not weather-as-impediment but rather seasonal demand and operational patterns: winter reduces ridership and road congestion, improving schedule adherence despite worse driving conditions. Snow and cold are proxies for lower demand, not direct causes of better performance.

The panel regression null result is important: even though system-level correlations are strong (r>0.5), weather variation explains only 4.5% of route-month OTP variation, and this disappears with proper clustering. This indicates weather is a system-level seasonal modulator rather than a route-level predictor – all routes respond similarly to weather, so it provides no discriminating power for individual route performance.

Caveats

29. Service Change Impact

Schedule changes (pick period transitions) are associated with a small but statistically significant positive OTP shift (+0.6 pp mean, t=2.95, p=0.003), though the effect is weak and does not differ significantly by event type. Of 738 events across 101 routes, service increases (+118 trips/day) yield +1.3 pp OTP improvement, service cuts (-64 trips/day) yield +0.1 pp, and neutral restructurings yield +0.8 pp – but the Kruskal-Wallis test finds no significant difference between types (H=4.03, p=0.13). The correlation between trip count change and OTP change is marginally significant (Spearman rho=0.074, p=0.045) but explains less than 1% of variance. COVID-period events (n=184) show a smaller effect (+0.2 pp) than non-COVID events (+0.8 pp). The positive mean delta may reflect PRT timing changes to coincide with operational improvements or seasonal gains rather than a causal effect of the schedule change itself.

service_change_impact
Service Change Impact
Detailed findings

Summary

Schedule changes (pick period transitions) are associated with a small but statistically significant positive OTP shift on average, though the effect is weak and does not differ significantly by event type (increase, cut, or neutral).

Key Numbers

- Service increases (+118 trips/day avg): +1.3 pp OTP delta (n=110) - Service cuts (-64 trips/day avg): +0.1 pp OTP delta (n=215) - Neutral (same trips, new schedule): +0.8 pp OTP delta (n=413)

Observations

Discussion

The statistically significant but tiny positive mean delta (+0.6 pp) is best interpreted as evidence that schedule changes are not harmful to OTP, rather than evidence that they improve it. The effect size is operationally negligible – less than 1 percentage point – and the lack of differentiation across event types (Kruskal-Wallis p=0.13) means we cannot conclude that service increases help or that service cuts hurt.

The most striking finding is the dominance of "neutral" events (413 of 738). Most pick period transitions leave trip counts unchanged, meaning PRT's schedule restructurings are primarily about rearranging timing, not adding or removing service. These neutral events still show a +0.8 pp OTP delta, which is consistent with the hypothesis that PRT uses schedule changes as opportunities to adjust running times or pad recovery time – operational improvements that would improve OTP without changing trip frequency.

The marginal Spearman correlation (rho=0.074, p=0.045) aligns with the direction suggested by Analysis 30's pre-COVID subperiod (adding trips slightly degrades OTP), but in the opposite direction here – adding trips is associated with better OTP. This apparent contradiction dissolves when considering that Analysis 29 measures 3-month average shifts around discrete events, while Analysis 30 measures month-over-month continuous variation. The schedule change event likely captures a package of operational adjustments (new running times, rerouted deadheads, adjusted layover) that happen to coincide with trip count changes, not a pure frequency effect.

For policy, the null Kruskal-Wallis result is the most actionable finding: it suggests PRT can adjust service levels (up or down) without expecting systematic OTP consequences. OTP is determined by factors other than how many trips are scheduled.

Caveats

30. Service Level vs OTP Longitudinal

Within-route month-over-month changes in scheduled trip frequency have no significant relationship with detrended OTP changes. Across 2,374 delta observations from 93 routes over 27 months (Jan 2019 – Mar 2021), the overall effect is essentially zero (Pearson r=0.018, p=0.39; Spearman rho=-0.030, p=0.15). Bus-only results are similar (r=0.023, p=0.26). The pre-COVID subperiod shows a marginally negative slope (r=-0.052, p=0.07), suggesting adding trips slightly degraded OTP when the system was near capacity, but this does not survive multiple-comparison correction. The post-COVID subperiod is null (r=0.030, p=0.31). This confirms Analysis 10's cross-sectional null finding with a stronger longitudinal within-route design that controls for all time-invariant route characteristics, reinforcing the conclusion that trip frequency is not a lever for OTP improvement.

service_level_scatter
Service Level Scatter
Detailed findings

Summary

Within-route month-over-month changes in scheduled trip frequency have no significant relationship with OTP changes after detrending. This null result holds across all routes, bus-only, and in both pre- and post-COVID subperiods.

Key Numbers

Observations

Discussion

This null result is the most methodologically rigorous frequency-OTP test in the project. Analysis 10 was cross-sectional (comparing different routes at one point in time) and confounded by route characteristics – long routes have both more trips and worse OTP for structural reasons. This analysis controls for all time-invariant route features by using within-route changes over time, and detrends to remove system-wide shocks. The result is unambiguous: trip frequency changes do not predict OTP changes within routes.

The marginally negative pre-COVID slope (r=-0.052, p=0.07) is the one signal worth noting. Before COVID, the system was operating near capacity, and adding trips to an already-constrained route may have slightly degraded schedule adherence – each additional trip competes for the same road space, layover time, and driver availability. After COVID reduced demand, this constraint relaxed and the effect disappeared. This is consistent with a capacity-constrained model where frequency only matters at the margin when the system is near saturation, and is irrelevant otherwise.

The policy implication reinforces what emerged across Analyses 10, 26, and 29: scheduled service frequency is not a lever for OTP improvement. Routes don't get more on-time by running fewer trips, and they don't get less on-time by running more. The ~50% of OTP variance explained by the multivariate model (Analysis 18) comes from structural features (stop count, route length, mode), and the remaining ~50% likely reflects operational factors (schedule padding, driver availability, real-time traffic variability) that are orthogonal to how many trips are scheduled.

The 27-month window is a genuine limitation. A longer panel with more schedule variation – particularly one that captures the post-2021 period when PRT may have restructured service – could provide more statistical power. Extending the WPRDC data or obtaining historical GTFS archives would strengthen this null finding or reveal effects that 27 months cannot detect.

Caveats

31. Stop Consolidation Candidates

43% of stop-route combinations see fewer than 5 daily boardings+alightings, and 99.4% of those have a same-route neighbor within 400 m. Using the stop-count/OTP regression slope (-0.059 pp per stop removed), removing these low-usage candidates yields a naive estimated average OTP gain of +3.2 pp per route, with Route 59 (Mon Valley) seeing the maximum at +10.2 pp from consolidating 174 of its 334 stops. Flyer routes (P10, P16, O5) have the most candidates (148-167 each), consistent with their long suburban corridors. 87 of 90 OTP-matched routes have at least one candidate.

However, the OTP gain estimate is likely overstated. PRT bus drivers already skip stops where no one is waiting and no one has signaled to alight. A low-usage stop (<5 daily boardings) is empty on the vast majority of individual bus trips, so the bus already passes it without stopping most of the time – removing the sign changes little operationally. The cross-sectional regression slope reflects that high-stop-count routes are structurally different (longer, more urban, more signals), not that each individual stop adds a fixed marginal delay. Analysis 34 reinforces this: per-stop ridership concentration has no correlation with OTP (r = -0.016), suggesting dwell time from passenger volumes is not the dominant mechanism. Additionally, stop removal raises accessibility concerns for riders with disabilities (400 m on hilly terrain may be prohibitive) and affects short-trip riders who depend on incremental stop spacing. The finding is better read as evidence that route design with fewer, better-spaced stops (limited-stop or express overlays) outperforms local-stop design, rather than as a case for piecemeal stop removal.

candidate_map
Candidate Map
otp_gain_by_route
Otp Gain By Route
Detailed findings

Summary

43% of all stop-route combinations in the PRT system see fewer than 5 daily boardings+alightings on weekdays, and nearly all of these have a same-route neighbor within 400 m walking distance. Removing these low-usage stops could yield an average OTP improvement of +3.2 percentage points per route, with the highest-impact routes gaining up to +10 pp. The top candidates are long suburban/flyer routes with many lightly used stops along corridors.

Key Numbers

Observations

Discussion

What the data shows

Analysis 07 established that stop count is the strongest single predictor of poor OTP (r = -0.53), and this analysis shows that nearly half the system's stop-route pairs see trivially low usage. The correlation between stop count and OTP is real and robust across multiple specifications.

The concentration of candidates on flyer routes (P10, P16, O5) is intuitive: these routes traverse long suburban corridors where stops were placed at frequent intervals to maximize coverage, but actual demand clusters at a few park-and-ride or transfer locations.

Why the OTP gain estimate is likely overstated

The +3.2 pp average gain estimate assumes each stop removed saves equivalent time, but PRT bus drivers already skip stops where no one is waiting and no one has signaled to alight. A low-usage stop with <5 daily boardings is empty on the vast majority of individual bus trips, meaning the bus already passes it without stopping most of the time. Removing the sign does not change this operational reality.

The cross-sectional regression slope (-0.059 pp/stop) captures the fact that routes with many stops are structurally different – they are longer, serve denser urban corridors with more traffic signals, and have higher cumulative probability of someone being at the next stop. These are route design characteristics, not marginal effects of individual stops. The causal effect of removing a single low-usage stop is likely well below the regression estimate.

Analysis 34 (Ridership Concentration) reinforces this interpretation: per-stop ridership concentration has no correlation with OTP (r = -0.016, p = 0.88), suggesting dwell time from passenger volumes is not the dominant mechanism. The stop count/OTP relationship is better understood as a proxy for route design philosophy (local vs limited-stop vs express) rather than a per-stop causal lever.

Accessibility and equity concerns

The 400 m walk-distance filter assumes riders can walk to the next stop, but this may not hold for riders with disabilities, elderly riders, or those with mobility limitations – particularly given Pittsburgh's hilly terrain. ADA compliance is not just a legal requirement but a core service obligation. Any consolidation program would require stop-by-stop accessibility review. Some low-usage stops may also serve riders making short trips where incremental stop spacing is the primary value of the bus service.

Reframing the finding

The stop count/OTP relationship is best read as evidence that route design with fewer, better-spaced stops outperforms local-stop design – which is already reflected in the busway/express vs local gap (Analysis 02). The policy implication points more toward limited-stop or express overlays on high-ridership corridors than toward individual stop removal. Converting low-usage suburban segments to limited-stop service (as the flyer route candidates suggest) is more defensible than piecemeal stop removal, because it redesigns the service pattern rather than degrading existing local coverage.

Stop consolidation remains politically sensitive. Community opposition to stop removal often exceeds what ridership data would justify. A phased approach – starting with stops below 1 rider/day that have a neighbor within 200 m, with accessibility review – would minimize controversy while testing whether actual OTP gains materialize.

Caveats

32. Shelter Equity

Only 7.3% of bus stops have shelters, yet those sheltered stops serve 31% of total ridership. Sheltered stops have 5x the median usage of unsheltered stops (34 vs 7 riders/day, Mann-Whitney p = 9.2e-84). The top 20 unsheltered stops (1,200-2,800 riders/day) are concentrated in downtown and Oakland. Shelter ownership reveals divergent placement strategies: PAAC and City of Pittsburgh target moderate-to-high usage stops (165-204/day avg), while Lamar advertising shelters average only 26/day – suggesting ad revenue rather than ridership drives their locations. Bus stops have just 7% shelter coverage versus 73% for busway and 100% for light rail.

ridership_by_shelter
Ridership By Shelter
shelter_coverage_by_mode
Shelter Coverage By Mode
Detailed findings

Summary

Only 7.3% of PRT bus stops have shelters, yet those sheltered stops serve 31% of total system ridership. Sheltered stops have 5x the median daily usage of unsheltered stops (34 vs 7 riders/day). The most striking gap is among regular bus stops, where just 7% have shelters despite serving the vast majority of riders. Several of the system's busiest stops – including downtown intersections with 2,000+ daily boardings – lack any shelter.

Key Numbers

Observations

Discussion

The shelter coverage gap represents a tangible rider experience problem. The 20 busiest unsheltered stops collectively serve ~35,000 riders per day who wait without weather protection. Given Pittsburgh's climate (Analysis 28 showed snow days and freeze days significantly affect OTP), shelter absence at high-volume stops compounds the negative experience of unreliable service.

The divergence between shelter owners reveals different placement strategies. PAAC and City of Pittsburgh place shelters at moderately high-usage stops (165-204/day), following a ridership-informed approach. Lamar's advertising-driven placements (26/day average) prioritize visibility for ad revenue over rider need, and Heffner's placements (3/day) appear driven by factors entirely unrelated to ridership. This suggests the advertising-shelter model, while providing free infrastructure, does not align with transit equity goals.

The Pareto finding from Analysis 34 (2% of stops serve 50% of riders) frames the opportunity: sheltering just the top 150 unsheltered stops would reach a large share of unprotected riders. At typical shelter costs of $15-30K per installation, covering the top 20 unsheltered stops would cost $300-600K while protecting ~35,000 daily riders – a strong return on investment.

The downtown equity gap is particularly striking because these stops are the most visible face of the transit system. Visitors and new riders encountering a 2,800-rider/day stop with no shelter receive a signal about the system's investment priorities. Addressing the downtown/Oakland gaps would improve both rider experience and public perception.

Caveats

33. Pandemic Ridership Geography

System weekday ridership fell 63.1% between pre-pandemic and pandemic periods. The loss was remarkably uniform geographically: median stop-level change was -60% for downtown, -62% for the inner ring (2-8 km), and -59% for the outer ring (>8 km). The inner ring had the steepest aggregate loss (-65.7%), driven by Oakland/university-area stops that lost 70-87%. Outer suburbs retained ridership slightly better (-55.7% aggregate), consistent with more transit-dependent essential workers. Mode differences were minimal (bus -60%, busway -58%, light rail -56%). The geographic uniformity challenges the narrative that downtown transit was disproportionately affected – the pandemic's impact was driven by system-wide behavioral shifts rather than location-specific factors.

change_by_zone
Change By Zone
ridership_change_map
Ridership Change Map
Detailed findings

Summary

System-wide weekday ridership fell 63% between the pre-pandemic baseline (Sep 2019/Jan 2020) and the pandemic period (Sep 2020/Apr 2021). The loss was remarkably uniform geographically: the median stop lost ~60% regardless of whether it was in downtown, the inner ring, or the outer suburbs. The largest absolute losses were concentrated at high-volume downtown and university-area stops, while outer suburban stops showed slightly better retention in aggregate.

Key Numbers

Observations

Discussion

The geographic uniformity of ridership loss challenges the narrative that the pandemic disproportionately affected downtown transit. While downtown and Oakland stops did lose the most riders in absolute terms (because they started highest), the rate of loss was nearly identical everywhere. This suggests the pandemic's impact was driven more by system-wide behavioral shifts (remote work, fear of shared spaces) than by location-specific factors.

The slightly better retention in outer suburbs aligns with the "essential worker" hypothesis: riders who depend on transit for non-office jobs continued riding at higher rates. This has implications for service planning – if remote work persists, the ridership center of gravity may permanently shift outward, favoring suburban route investment.

The Oakland/university corridor stands out as a potential recovery target: these stops lost 70-87% of riders, largely due to remote instruction. As universities have returned to in-person operations, these stops may have recovered more than this pandemic-era snapshot shows.

Caveats

34. Ridership Concentration / Pareto

PRT ridership is extremely concentrated: 2% of stops serve 50% of riders, and 14% serve 80%. The system-wide Gini coefficient is 0.824. Per-route Gini ranges from 0.34 to 0.89 (median 0.65), with flyer routes showing the highest concentration. However, route-level ridership concentration has no correlation with OTP (Pearson r = -0.016, p = 0.88; Spearman rho = 0.103, p = 0.34). This null result suggests that dwell time at individual stops (a function of passenger volume) is not a dominant factor in OTP – the time cost of stopping itself (deceleration, doors, acceleration) matters more than how many passengers board, reinforcing stop count as the key lever.

gini_vs_otp
Gini Vs Otp
pareto_curve
Pareto Curve
Detailed findings

Summary

PRT ridership is extremely concentrated: just 2% of stops serve 50% of all weekday riders, and 14% of stops serve 80%. The system-wide Gini coefficient is 0.82, indicating very high inequality in stop-level usage. However, per-route ridership concentration (Gini) has essentially zero correlation with that route's OTP (r = -0.016, p = 0.88), meaning whether a route's riders are clustered at a few stops or spread evenly has no bearing on schedule reliability.

Key Numbers

Observations

Discussion

The extreme system-wide concentration (Gini = 0.82) reinforces the stop consolidation finding from Analysis 31: most stops contribute very little ridership, and removing the lowest-usage ones would affect few riders while potentially improving OTP by reducing stop count.

The null result for Gini vs OTP is notable. One might hypothesize that routes with concentrated ridership would have better OTP (less dwell time at most stops), but this doesn't hold. This suggests that dwell time at individual stops is not a dominant factor in OTP variance – the time cost of stopping (deceleration, door opening, acceleration) matters more than the time cost of boarding passengers. This aligns with the Analysis 07 finding that raw stop count, not passenger volume, drives OTP.

The 2/50 concentration ratio has resource allocation implications: if PRT focused infrastructure investment (shelters, real-time signs, ADA upgrades) on just 150 stops, it would reach half of all riders. The current shelter coverage of 7% (Analysis 32) suggests significant room to target the highest-impact locations.

Caveats

35. Boarding/Alighting Flow Analysis

System boardings (130,121/day) and alightings (129,684/day) are nearly balanced (ratio 1.003), but individual stops show strong directional asymmetry. Inbound stops net +22,385 boardings (ratio 1.36); outbound net -24,197 (ratio 0.73) – confirming PRT's classic radial commuter pattern. The top generators (Smithfield St, 5th Ave) are outbound departure points; the top attractors (Wood St, Liberty Ave/Gateway) are inbound arrival points. This street-level split reflects downtown's one-way grid routing. Busway stations show split behavior: Wilkinsburg Platform C is a generator (+837/day) while Platform A is an attractor (-935/day). Oakland/university stops are net generators, suggesting the corridor is a secondary hub where students board outbound.

Key Takeaways

What drives OTP

  1. PRT OTP has declined from ~69% to ~62% since 2019 and has not recovered post-COVID.
  2. Dedicated right-of-way matters most: rail (84%) and busway (74%) routes dramatically outperform local bus (66%) routes.
  3. Stop count is the strongest predictor of poor OTP (r = -0.53 all routes n=92, r = -0.50 bus-only n=89). Routes with 150+ stops consistently underperform. This finding survives bus-only stratification, ruling out Simpson's paradox.
  4. Route length independently degrades OTP (partial r = -0.23 after controlling for stop count), but stop count has roughly twice the impact (partial r = -0.41).
  5. About half of OTP variance is explained by route geometry and road type (stop count, span, mode, truck share; R² ~ 0.45–0.50). The remaining variance likely requires operational data (schedule padding, driver availability, real-time traffic) not in this dataset.
  6. Garage assignment matters beyond route structure. Collier routes run +5.4 pp above East Liberty after controlling for stop count and span (p < 0.001), suggesting corridor-level or operational differences between garages.

What does not drive OTP

  1. Trip frequency, ridership volume, weekend service ratio, and directional asymmetry do not predict OTP – null results confirmed both cross-sectionally and longitudinally that narrow the field of actionable levers.
  2. Traffic volume (AADT) has no effect after structural controls (p = 0.92), though truck percentage proxies for arterial road type and is significant (p = 0.006). Total congestion likely requires peak-hour data to test properly.
  3. Weather does not independently explain OTP beyond what month-of-year dummies already capture. Cold months have better OTP, reflecting lower seasonal demand rather than a direct weather effect. Weather and seasonality are statistically interchangeable.
  4. Transfer hubs do not independently predict worse OTP. The raw stop-level gap (-3.5 pp) is a composition effect from poor-performing routes converging at hubs.
  5. Ridership concentration at stops does not affect OTP (r = -0.016, p = 0.88). The time cost of stopping itself (deceleration, doors, acceleration) matters more than how many passengers board, reinforcing stop count as the key lever.

COVID and ridership

  1. Zero of 93 routes have recovered to pre-COVID weekday ridership (median -43%). Weekend ridership has recovered much more (Saturday 91%, Sunday 84% of baseline vs weekday 65%), reflecting a structural shift from remote work.
  2. The COVID OTP decline is partially driven by regression to the mean (r = -0.25, p = 0.02). Specific local bus routes in the eastern corridor (71B, 58, 65) have deteriorated 15–21 pp beyond what RTM alone predicts.
  3. OTP declines do not predict subsequent ridership losses (0/93 routes significant after correction). The weak negative correlation suggests reverse causality: lower ridership improves OTP through reduced crowding, not that poor OTP drives riders away.
  4. Pandemic ridership loss was geographically uniform (downtown -60%, inner ring -62%, outer ring -59%), challenging the narrative that downtown transit was disproportionately affected.

Equity and human impact

  1. Geographic inequity is structural: municipalities on rail/busway get 80%+ OTP; those dependent on long local bus get 59–62%. The gap is driven by mode and route structure, not by geography per se.
  2. The average rider experiences slightly better OTP than the trip-weighted average (+1.6 pp), but the bottom OTP quintile of bus routes carries 33% of bus ridership – far more than its 20% fair share.
  3. OTP rank is a poor proxy for human impact. Route 51 ranks 55th by OTP but 2nd by delay burden due to massive ridership (Spearman rank correlation between OTP rank and burden rank is only 0.40). Targeting interventions by delay burden rather than OTP rate would better serve riders.
  4. Only 7% of bus stops have shelters, yet sheltered stops serve 31% of ridership. The top 20 unsheltered stops (1,200–2,800 riders/day) are concentrated in downtown and Oakland. Shelter placement by advertising companies correlates with ad revenue, not ridership.

Actionable levers

  1. The stop count/OTP correlation points to route design, not individual stop removal. 43% of stop-route combinations see fewer than 5 daily boardings, but buses already skip empty stops operationally, so removing signs at low-usage stops would likely yield far less than the naive regression estimate of +3.2 pp per route. The finding supports limited-stop or express overlays on high-ridership corridors rather than piecemeal stop consolidation, which also raises accessibility concerns for riders with disabilities and short-trip users.
  2. Ridership is extremely concentrated (2% of stops serve 50% of riders), reinforcing that the time cost of stopping itself outweighs passenger volume effects – stop count correlates with OTP because it reflects route design philosophy, not because each stop adds fixed delay.
  3. Schedule changes show no meaningful OTP lever. Service increases, cuts, and restructurings all produce similar ~+0.6 pp shifts, and within-route trip frequency changes have no significant effect on detrended OTP.

Analysis Index

#NameSummary
01System TrendTracks the overall PRT on-time performance trend from 2019 through 2025, including COVID impact and recovery.
02Mode ComparisonCompares on-time performance across service modes (BUS, RAIL, INCLINE) and route types (local, limited, express, busway).
03Route RankingRanks routes by average OTP, trend direction, and volatility to identify best/worst performers and most (in)consistent routes.
04Neighborhood EquityInvestigates whether on-time performance varies systematically by neighborhood and municipality.
05Anomaly InvestigationIdentifies and investigates sharp OTP drops that may indicate route restructuring, detours, or data quality issues.
06Seasonal PatternsDecomposes route-level OTP into trend, seasonal, and residual components to identify whether summer or winter months systematically affect performance.
07Stop Count Vs OtpTests whether routes with more stops have worse on-time performance, using a scatter plot of stop count against average OTP with mode-based coloring.
08Hotspot MapVisualizes stop-level on-time performance on a geographic scatter plot to identify corridor-level bottlenecks and clusters of poor performance.
09Incline InvestigationAudits the Monongahela Incline data across all database tables to determine why it appears in OTP data with zero/null values.
10Frequency Vs OtpTests whether high-frequency routes have worse on-time performance, using weekday trip counts as a proxy for service frequency.
11Directional AsymmetryInvestigates whether routes with a structural imbalance between inbound and outbound trip frequency have worse on-time performance.
12Geographic SpanComputes the geographic span (max distance between any two stops) for each route and tests whether longer routes have worse on-time performance, disentangling route length from stop count.
13Correlation ClusteringComputes pairwise OTP time-series correlations between all routes and uses hierarchical clustering to identify groups of routes whose performance rises and falls together.
14Covid RecoveryMeasures how far each route's OTP has recovered relative to its pre-COVID baseline and identifies route characteristics that predict faster or slower recovery.
15Municipal EquityAggregates on-time performance by municipality and county to assess service reliability equity at a broader geographic level than neighborhood analysis (Analysis 04).
16Transfer Hub PerformanceIdentifies high-connectivity stops (served by many routes) and tests whether passengers at transfer hubs experience worse OTP than those at low-connectivity stops.
17Weekend Weekday ProfileTests whether routes with different weekend-to-weekday service ratios show different OTP patterns, distinguishing commuter-oriented routes from all-day service routes.
18Multivariate ModelCombines stop count, mode, bus subtype, geographic span, and service profile into a single OLS regression model to quantify relative importance and total explained variance.
19Ridership Weighted OtpCompute system OTP weighted by actual average daily ridership instead of scheduled trip frequency, to measure the average rider's experience.
20Otp Ridership CausalityTest whether OTP declines predict subsequent ridership losses using lagged correlation and Granger causality tests.
21Covid Ridership RecoveryCompare ridership recovery trajectories with OTP recovery trajectories post-COVID to identify whether ridership recovery degrades OTP.
22Delay BurdenEstimate late rider-trips per route per month by combining ridership with OTP to identify where the most total human impact occurs.
23Garage PerformanceCompare OTP and ridership trends across PRT garages (Ross, Collier, East Liberty, West Mifflin) to surface operational differences.
24Daytype Ridership TrendsTrack how weekday, Saturday, and Sunday ridership patterns shifted post-COVID and whether weekend ridership share correlates with OTP.
25Ridership EquityMeasure what share of total system ridership is carried by the lowest-OTP routes using Lorenz curves and Gini coefficients.
26Ridership MultivariateAdd ridership as a predictor to the Analysis 18 OLS model to test whether it adds explanatory power beyond stop count, span, and mode.
27Traffic CongestionTests whether PennDOT AADT traffic volume explains OTP variance beyond structural features
28Weather ImpactTests whether weather (precipitation, snow, temperature) explains OTP variance or the counterintuitive seasonal pattern from Analysis 06.
29Service Change ImpactDo schedule changes (pick period transitions) correlate with OTP shifts?
30Service Level Otp LongitudinalWithin-route panel: does changing trip frequency improve or degrade OTP?
31Stop ConsolidationIdentifies low-usage stops with nearby neighbors as candidates for consolidation, estimates per-route OTP gains from reduced stop counts.
32Shelter EquityAssesses whether bus shelters are equitably placed relative to stop-level ridership volume; identifies high-usage unsheltered stops.
33Pandemic Ridership GeographyMaps the spatial pattern of stop-level ridership loss during the pandemic by distance zone, mode, and geography.
34Ridership ConcentrationQuantifies Pareto concentration of ridership across stops; tests whether route-level Gini correlates with OTP.
35Boarding Alighting FlowsAnalyzes net boarding-alighting flows by stop and direction to identify major trip generators vs attractors.
net_flow_map
Net Flow Map
top_generators_attractors
Top Generators Attractors
Detailed findings

Summary

PRT's system-wide boarding/alighting balance is nearly perfect (ratio 1.003), but individual stops show strong directional asymmetry. The top generators (net boardings) are outbound departure points on Smithfield St, 5th Ave, and Liberty Ave in downtown. The top attractors (net alightings) are inbound arrival points on Wood St, Liberty Ave at Gateway, and North Side Station. The directional data confirms a classic radial commuter pattern: inbound trips net +22,385 boardings vs outbound trips net -24,197 (i.e., people board going in and alight going out).

Key Numbers

Observations

Discussion

The boarding/alighting flow pattern is a direct fingerprint of Pittsburgh's commuter geography. The strong inbound-boarding / outbound-alighting asymmetry (+22K/-24K) confirms that PRT operates as a radial commuter network focused on downtown. The slight imbalance (outbound net is 1,800 higher than inbound net) likely reflects "Both"-direction stops that aggregate mixed flows.

The street-level generator/attractor split in downtown is operationally informative: Smithfield St outbound stops need boarding capacity (shelters, queuing space, real-time info), while Wood St inbound stops need alighting capacity (wide sidewalks, clear exits). This differs from a simple "downtown = destination" model and has implications for stop amenity design.

The presence of Oakland as a net generator is notable – it suggests the 5th Ave/Forbes corridor serves as a secondary hub where students and workers board to travel outbound, not just as a destination from downtown. This bidirectional flow may explain why 5th Ave routes face OTP challenges: high dwell time at stops that serve both directions heavily.

For service planning, the net flow data identifies where passenger demand is structurally asymmetric. Routes serving strong generators could potentially benefit from express or limited-stop variants in the outbound direction, while routes terminating at strong attractors could justify higher inbound frequency.

Caveats

Key Takeaways

What drives OTP

  1. PRT OTP has declined from ~69% to ~62% since 2019 and has not recovered post-COVID.
  2. Dedicated right-of-way matters most: rail (84%) and busway (74%) routes dramatically outperform local bus (66%) routes.
  3. Stop count is the strongest predictor of poor OTP (r = -0.53 all routes n=92, r = -0.50 bus-only n=89). Routes with 150+ stops consistently underperform. This finding survives bus-only stratification, ruling out Simpson's paradox.
  4. Route length independently degrades OTP (partial r = -0.23 after controlling for stop count), but stop count has roughly twice the impact (partial r = -0.41).
  5. About half of OTP variance is explained by route geometry and road type (stop count, span, mode, truck share; R² ~ 0.45–0.50). The remaining variance likely requires operational data (schedule padding, driver availability, real-time traffic) not in this dataset.
  6. Garage assignment matters beyond route structure. Collier routes run +5.4 pp above East Liberty after controlling for stop count and span (p < 0.001), suggesting corridor-level or operational differences between garages.

What does not drive OTP

  1. Trip frequency, ridership volume, weekend service ratio, and directional asymmetry do not predict OTP – null results confirmed both cross-sectionally and longitudinally that narrow the field of actionable levers.
  2. Traffic volume (AADT) has no effect after structural controls (p = 0.92), though truck percentage proxies for arterial road type and is significant (p = 0.006). Total congestion likely requires peak-hour data to test properly.
  3. Weather does not independently explain OTP beyond what month-of-year dummies already capture. Cold months have better OTP, reflecting lower seasonal demand rather than a direct weather effect. Weather and seasonality are statistically interchangeable.
  4. Transfer hubs do not independently predict worse OTP. The raw stop-level gap (-3.5 pp) is a composition effect from poor-performing routes converging at hubs.
  5. Ridership concentration at stops does not affect OTP (r = -0.016, p = 0.88). The time cost of stopping itself (deceleration, doors, acceleration) matters more than how many passengers board, reinforcing stop count as the key lever.

COVID and ridership

  1. Zero of 93 routes have recovered to pre-COVID weekday ridership (median -43%). Weekend ridership has recovered much more (Saturday 91%, Sunday 84% of baseline vs weekday 65%), reflecting a structural shift from remote work.
  2. The COVID OTP decline is partially driven by regression to the mean (r = -0.25, p = 0.02). Specific local bus routes in the eastern corridor (71B, 58, 65) have deteriorated 15–21 pp beyond what RTM alone predicts.
  3. OTP declines do not predict subsequent ridership losses (0/93 routes significant after correction). The weak negative correlation suggests reverse causality: lower ridership improves OTP through reduced crowding, not that poor OTP drives riders away.
  4. Pandemic ridership loss was geographically uniform (downtown -60%, inner ring -62%, outer ring -59%), challenging the narrative that downtown transit was disproportionately affected.

Equity and human impact

  1. Geographic inequity is structural: municipalities on rail/busway get 80%+ OTP; those dependent on long local bus get 59–62%. The gap is driven by mode and route structure, not by geography per se.
  2. The average rider experiences slightly better OTP than the trip-weighted average (+1.6 pp), but the bottom OTP quintile of bus routes carries 33% of bus ridership – far more than its 20% fair share.
  3. OTP rank is a poor proxy for human impact. Route 51 ranks 55th by OTP but 2nd by delay burden due to massive ridership (Spearman rank correlation between OTP rank and burden rank is only 0.40). Targeting interventions by delay burden rather than OTP rate would better serve riders.
  4. Only 7% of bus stops have shelters, yet sheltered stops serve 31% of ridership. The top 20 unsheltered stops (1,200–2,800 riders/day) are concentrated in downtown and Oakland. Shelter placement by advertising companies correlates with ad revenue, not ridership.

Actionable levers

  1. The stop count/OTP correlation points to route design, not individual stop removal. 43% of stop-route combinations see fewer than 5 daily boardings, but buses already skip empty stops operationally, so removing signs at low-usage stops would likely yield far less than the naive regression estimate of +3.2 pp per route. The finding supports limited-stop or express overlays on high-ridership corridors rather than piecemeal stop consolidation, which also raises accessibility concerns for riders with disabilities and short-trip users.
  2. Ridership is extremely concentrated (2% of stops serve 50% of riders), reinforcing that the time cost of stopping itself outweighs passenger volume effects – stop count correlates with OTP because it reflects route design philosophy, not because each stop adds fixed delay.
  3. Schedule changes show no meaningful OTP lever. Service increases, cuts, and restructurings all produce similar ~+0.6 pp shifts, and within-route trip frequency changes have no significant effect on detrended OTP.

Analysis Index

#NameSummary
01System TrendTracks the overall PRT on-time performance trend from 2019 through 2025, including COVID impact and recovery.
02Mode ComparisonCompares on-time performance across service modes (BUS, RAIL, INCLINE) and route types (local, limited, express, busway).
03Route RankingRanks routes by average OTP, trend direction, and volatility to identify best/worst performers and most (in)consistent routes.
04Neighborhood EquityInvestigates whether on-time performance varies systematically by neighborhood and municipality.
05Anomaly InvestigationIdentifies and investigates sharp OTP drops that may indicate route restructuring, detours, or data quality issues.
06Seasonal PatternsDecomposes route-level OTP into trend, seasonal, and residual components to identify whether summer or winter months systematically affect performance.
07Stop Count Vs OtpTests whether routes with more stops have worse on-time performance, using a scatter plot of stop count against average OTP with mode-based coloring.
08Hotspot MapVisualizes stop-level on-time performance on a geographic scatter plot to identify corridor-level bottlenecks and clusters of poor performance.
09Incline InvestigationAudits the Monongahela Incline data across all database tables to determine why it appears in OTP data with zero/null values.
10Frequency Vs OtpTests whether high-frequency routes have worse on-time performance, using weekday trip counts as a proxy for service frequency.
11Directional AsymmetryInvestigates whether routes with a structural imbalance between inbound and outbound trip frequency have worse on-time performance.
12Geographic SpanComputes the geographic span (max distance between any two stops) for each route and tests whether longer routes have worse on-time performance, disentangling route length from stop count.
13Correlation ClusteringComputes pairwise OTP time-series correlations between all routes and uses hierarchical clustering to identify groups of routes whose performance rises and falls together.
14Covid RecoveryMeasures how far each route's OTP has recovered relative to its pre-COVID baseline and identifies route characteristics that predict faster or slower recovery.
15Municipal EquityAggregates on-time performance by municipality and county to assess service reliability equity at a broader geographic level than neighborhood analysis (Analysis 04).
16Transfer Hub PerformanceIdentifies high-connectivity stops (served by many routes) and tests whether passengers at transfer hubs experience worse OTP than those at low-connectivity stops.
17Weekend Weekday ProfileTests whether routes with different weekend-to-weekday service ratios show different OTP patterns, distinguishing commuter-oriented routes from all-day service routes.
18Multivariate ModelCombines stop count, mode, bus subtype, geographic span, and service profile into a single OLS regression model to quantify relative importance and total explained variance.
19Ridership Weighted OtpCompute system OTP weighted by actual average daily ridership instead of scheduled trip frequency, to measure the average rider's experience.
20Otp Ridership CausalityTest whether OTP declines predict subsequent ridership losses using lagged correlation and Granger causality tests.
21Covid Ridership RecoveryCompare ridership recovery trajectories with OTP recovery trajectories post-COVID to identify whether ridership recovery degrades OTP.
22Delay BurdenEstimate late rider-trips per route per month by combining ridership with OTP to identify where the most total human impact occurs.
23Garage PerformanceCompare OTP and ridership trends across PRT garages (Ross, Collier, East Liberty, West Mifflin) to surface operational differences.
24Daytype Ridership TrendsTrack how weekday, Saturday, and Sunday ridership patterns shifted post-COVID and whether weekend ridership share correlates with OTP.
25Ridership EquityMeasure what share of total system ridership is carried by the lowest-OTP routes using Lorenz curves and Gini coefficients.
26Ridership MultivariateAdd ridership as a predictor to the Analysis 18 OLS model to test whether it adds explanatory power beyond stop count, span, and mode.
27Traffic CongestionTests whether PennDOT AADT traffic volume explains OTP variance beyond structural features
28Weather ImpactTests whether weather (precipitation, snow, temperature) explains OTP variance or the counterintuitive seasonal pattern from Analysis 06.
29Service Change ImpactDo schedule changes (pick period transitions) correlate with OTP shifts?
30Service Level Otp LongitudinalWithin-route panel: does changing trip frequency improve or degrade OTP?
31Stop ConsolidationIdentifies low-usage stops with nearby neighbors as candidates for consolidation, estimates per-route OTP gains from reduced stop counts.
32Shelter EquityAssesses whether bus shelters are equitably placed relative to stop-level ridership volume; identifies high-usage unsheltered stops.
33Pandemic Ridership GeographyMaps the spatial pattern of stop-level ridership loss during the pandemic by distance zone, mode, and geography.
34Ridership ConcentrationQuantifies Pareto concentration of ridership across stops; tests whether route-level Gini correlates with OTP.
35Boarding Alighting FlowsAnalyzes net boarding-alighting flows by stop and direction to identify major trip generators vs attractors.

Appendix: Additional Data Requests

The multivariate model (Analysis 18) explains 47% of OTP variance using structural route characteristics (stop count, geographic span, mode). The remaining 53% reflects operational and environmental factors absent from this dataset. This document identifies the most valuable additional data sources, ordered by expected analytical impact.

Update (Feb 2026): Four items have been obtained and analyzed since initial writing. See "Obtained" section below for results.


High Priority

These would directly address the largest gaps in the current analysis.

1. Automatic Vehicle Location (AVL) data – stop-level arrival times

What: Timestamped vehicle arrivals at each stop, ideally with scheduled vs actual times.

Why: The single biggest limitation of this project is that OTP is measured at the route-month level. Every analysis that projects OTP onto stops or neighborhoods (Analyses 04, 08, 15, 16) commits an ecological fallacy – a route's average OTP is not uniform across its stops. AVL data would reveal where along each route delays accumulate, transforming descriptive findings into actionable diagnostics.

What it would enable:

Likely source: PRT's internal CAD/AVL system. May be available via FOIA or data sharing agreement. Some agencies publish this as part of GTFS-Realtime archives.


2. Historical GTFS schedule feeds (2019–2025)

What: Archived GTFS static feeds for each service period, containing stop_times, trips, calendar, and shapes.

Why: The current route_stops table is a single snapshot applied across 7 years of OTP data. Service levels changed dramatically (COVID cuts, post-COVID restructuring). This creates a static-weights problem flagged in METHODOLOGY-ISSUES.md (Issues 1, 2) and limits the multivariate model to current-period features only.

What it would enable:

Likely source: Mobility Database or transitfeeds.com archive PRT's historical GTFS feeds. PRT may also maintain an internal archive.


3. Construction and detour records

What: Dates, locations, and affected routes for road construction, utility work, and planned detours.

Why: Analysis 05 found clusters of negative anomalies in late 2022 that may reflect system-wide disruption. Construction is a major source of OTP degradation but leaves no trace in the current dataset. A construction calendar would enable systematic attribution of anomalies.

What it would enable:

Likely source: PRT service alerts (archived GTFS-RT or website scrapes). City of Pittsburgh and PennDOT construction permit databases.


Lower Priority

Useful for completeness but unlikely to change major conclusions.

5. On-time performance definition and measurement methodology

What: PRT's internal documentation of how OTP is calculated – threshold (e.g., 0-5 min late), measurement points (all stops vs timepoints vs origin/destination), and data source (AVL, manual, GPS).

Why: DATA_DICTIONARY.md flags that the "on-time" definition is unspecified. Different thresholds and measurement points would produce different numbers. Understanding the methodology would improve interpretation of all 27 analyses.

Likely source: PRT performance standards documentation, board presentations, or FTA reporting guidelines.

6. Vehicle fleet data (age, type, capacity)

What: Bus/rail vehicle assignments by route, including vehicle age and type.

Why: Older vehicles may break down more often, and vehicle capacity affects dwell time. This is a second-order effect unlikely to dominate, but could explain residual variance for specific routes.

Likely source: PRT fleet inventory (often published in capital plans or NTD reports).

7. Signal priority and transit infrastructure data

What: Locations of transit signal priority (TSP), bus-only lanes, queue jumps, and other infrastructure investments.

Why: Analysis 02 showed that dedicated right-of-way is the strongest mode-level predictor. Granular infrastructure data would let us test whether TSP or bus lanes produce measurable OTP improvements at specific locations.

Likely source: PRT or City of Pittsburgh traffic engineering department. Some TSP locations are documented in regional transportation plans.


Obtained Data (completed)

These items have been acquired and analyzed. Summarized here for reference.

Ridership data (originally #3)

Obtained: Route-level monthly average weekday ridership from PRT open data (Jan 2017 – Oct 2024), loaded into ridership_monthly table.

Result: Ridership does not add explanatory power to the multivariate model (Analysis 26: F=2.53, p=0.116, R2 change +1.5pp). High ridership does not independently degrade OTP – poor-performing routes happen to have high ridership because they are long, many-stop corridors. However, ridership enabled Analyses 19-25 (ridership-weighted OTP, delay burden, equity, causality, COVID recovery, day-type trends).

Traffic volume data (originally #4)

Obtained: PennDOT AADT (Annual Average Daily Traffic) for 2,923 Allegheny County road segments via ArcGIS REST API. Spatially joined to GTFS route shapes via KDTree; loaded into route_traffic table.

Result: AADT is not significant after structural controls (Analysis 27: F=0.011, p=0.92). Truck percentage is significant (p=0.006, +5pp R2), likely proxying for arterial road classification. The null result is attributed to AADT being a 24-hour annual average that does not capture peak-hour congestion. Time-of-day traffic speed data (e.g., INRIX) remains the strongest untested congestion variable.

Weather data (originally #3)

Obtained: NOAA GHCND daily weather from Pittsburgh International Airport (station USW00094823) via NCEI Access Data Service v1, covering Jan 2019 – Dec 2025 (2,557 daily records). Aggregated to monthly and loaded into weather_monthly table. Fields: precipitation, snowfall, temperature (max/min), freeze days, hot days, wind speed.

Result: Weather shows moderate detrended correlations with system OTP (freeze_days r=+0.57, mean_tmin r=-0.57) but in the counterintuitive direction – cold months have better OTP. Weather is statistically interchangeable with month-of-year dummies (neither adds significantly beyond the other: F=0.92, p=0.48 and F=1.09, p=0.39). At the route-month level, weather explains only 4.5% of within-route OTP variation and is non-significant with cluster-robust SEs. The seasonal pattern reflects lower winter demand/congestion rather than a direct weather impediment.

Depot/operator assignments (originally #6)

Obtained: Garage assignments from the current_garage field in ridership data (4 garages: Ross, Collier, East Liberty, West Mifflin).

Result: Garage is significant after structural controls (Analysis 23: F=4.55, p=0.005, R2 increase from 0.31 to 0.41). Collier routes run +5.4pp above East Liberty after controls (p<0.001). West Mifflin's poor raw performance is explained by route structure.


Summary Table

#Data SourcePrimary Gap AddressedExpected Impact on R²Availability
1AVL stop-level arrivalsEcological fallacy in stop/neighborhood analysesHighFOIA or data agreement
2Historical GTFS feedsStatic weights, schedule changesMedium-HighPublic archives
3~~Weather data~~~~Seasonal/anomaly attribution~~~~Medium~~Obtained (Analysis 28)
4Construction/detour recordsAnomaly attributionLow-MediumService alerts
5OTP definition docsInterpretation of all analysesLow (interpretive)PRT documentation
6Vehicle fleet dataResidual varianceLowNTD or capital plans
7Signal priority locationsInfrastructure impactLowTraffic engineering